
AcWing
文章平均质量分 59
# AcWing
superkcl2022
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
ACWing 第五章 动态规划
文章目录背包问题AcWing 2. 01背包问题 背包问题 NNN个物品,背包体积 VVV, 不一定要装满背包 01背包:每件物品最多用一次 完全背包:每件物品有无限个 多重背包:每个物品有SiS_iSi个,朴素版+优化版 分组背包:NNN组,每组有若干个,水果组,蔬菜组,每组最多选择一物品,每组互斥 子集划分:不重复,不漏 动态规划=状态表示f(i,j)+状态计算动态规划=状态表示f(i,j)+状态计算动态规划=状态表示f(i,j)+状态计算 状态表示f(i,j)=状态表示f(i,j)=状态表示f(i原创 2021-08-02 00:12:39 · 318 阅读 · 1 评论 -
AcWing 第四讲 数学知识
文章目录1. 质数质数的判定-试除法分解质因数-试除法AcWing 868. 筛质数 1. 质数 在 > 1的整数中, 如果只包含1和本身这两个约数,就是质数,也叫素数 n <= 1不是质数 质数的判定-试除法 质数的约数都是成对出现的,可以枚举每一对中较小的那个 // O(sqrt(n)) bool is_prime(int n){ if(n <= 1) return false; for(int i = 2; i <= n / i; i++) // i * i <原创 2021-07-31 16:13:18 · 190 阅读 · 0 评论 -
AcWing 第三讲 搜索与图论
文章目录1. DFSAcWing 842. 排列数字AcWing 843. n-皇后问题2. BFSAcWing 844. 走迷宫AcWing 845. 八数码 1. DFS AcWing 842. 排列数字 AcWing 842. 排列数字 #include <iostream> using namespace std; const int N = 7 + 11; int n; bool vis[N]; // 避免重复 int p[N]; // 输出记录数组 void dfs(int n原创 2021-07-28 14:43:56 · 319 阅读 · 0 评论 -
AcWing 《算法竞赛进阶指南》 0x00 基本算法
文章目录1.位运算AcWing 89. a^b 1.位运算 AcWing 89. a^b AcWing 89. a^b #include <iostream> using namespace std; int quick_mod(int a,int b,int q){ int res = 1; if(b == 0 && q == 1) res = 0; while(b){ if(b&1) res = 1ll*res*a % q;原创 2021-07-25 10:02:40 · 147 阅读 · 0 评论 -
Acwing 第二讲 数据结构 STL
文章目录1.单链表AcWing 826. 单链表2. 双链表AcWing 827. 双链表 1.单链表 AcWing 826. 单链表 AcWing 826. 单链表 idx万岁 #include <iostream> #include <cstring> using namespace std; const int N = 100010; int M; int e[N],ne[N]; int head,idx; //head为头结点的数组下标,idx为即将使用的数组下标 void原创 2021-07-23 11:37:02 · 288 阅读 · 1 评论 -
AcWing 第一讲 基础算法
文章目录快速排序AcWing 785. 快速排序AcWing 786. 第k个数 快速排序 AcWing 785. 快速排序 #include <iostream> using namespace std; const int N = 1e5 + 1; int cnt[N]; // 有等号 + 无等号 + 有等号 是最好的选择 101 void quick_sort(int l,int r){ if(l >= r) return; //可以无视等号 int pivot原创 2021-07-11 22:59:10 · 270 阅读 · 0 评论 -
AcWing-并查集-合并路径
文章目录并查集acwing-836 合并路径 并查集 将两个集合合并 询问两个元素是否在一个集合当中O(1) 近乎O(1) 基本原理:每个集合用一棵树来表示,树根的编号就是整个集合的编号。 每个节点存储他的父节点,p[x]表示x的父节点 问题1:如何判断树根: if(p[x] == x) 问题2: 如何求x(树根编号)的集合编号:while(p[x]!=x) x = p[x]; 问题3: 如何合并两个集合?px是x的集合编号,py是y的集合编号,px = y; 路径压缩优化 acwing-836 合原创 2021-05-20 11:31:28 · 162 阅读 · 0 评论 -
AcWing-KMP
文章目录暴力算法 暴力算法原创 2021-05-19 22:38:43 · 153 阅读 · 0 评论 -
AcWing-【位运算】
文章目录lowbit 右移一位1 for(int k = 4; k >= 0; k--) cout << (n>>k & 1); 01010 lowbit原创 2021-05-15 22:26:30 · 112 阅读 · 0 评论 -
AcWing-【前缀和】【子矩阵的和】【差分】
文章目录前缀和子矩阵的和 前缀和 S0 = 0 Si = A1 + A2 + ... + Ai i不能为1 作用:求[l,r]的和 = S[r]-S[l-1] for(int i = 1; i <= n; i++) cin >> arr[i]; s[0] = 0; for(int i = 1; i <= n; i++) s[i] = s[i] + arr[i] + s[i-1]; 子矩阵的和 输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y原创 2021-05-15 18:16:48 · 158 阅读 · 0 评论 -
AcWing-第k大数-【快排】【O(n)】
给定一个长度为 n 的整数数列,以及一个整数 k,请用快速选择算法求出数列从小到大排序后的第 k 个数。 输入格式 第一行包含两个整数 n 和 k。 第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整数数列。 输出格式输出一个整数,表示数列的第 k 小数。 数据范围 1≤n≤100000, 1≤k≤n 输入样例: 5 3 2 4 1 5 3 输出样例: 3 #include <iostream> using namespace std; const int maxn = .原创 2021-05-15 11:08:19 · 202 阅读 · 0 评论 -
AcWing-高精度-加法-减法-乘法
文章目录高精度加法 高精度加法 #include <iostream> #include <vector> using namespace std; const int N = 200 + 11; vector<int> add(vector<int>& v1,vector<int>& v2){ vector<int> res; int t = 0; int i = 0,j = 0; while(i <原创 2021-05-14 11:17:38 · 173 阅读 · 1 评论 -
AcWing-789. 数的范围-【二分】【小数二分】
文章目录题目C++ 自定义二分 题目 给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。 对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。 如果数组中不存在该元素,则返回 -1 -1。 输入格式 第一行包含整数 n 和 q,表示数组长度和询问个数。 第二行包含 n 个整数(均在 1∼10000 范围内),表示完整数组。 接下来 q 行,每行包含一个整数 k,表示一个询问元素。 输出格式 共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。 如果数组中原创 2021-05-13 22:28:34 · 881 阅读 · 0 评论 -
AcWing-归并排序
#include <iostream> using namespace std; const int N = 1e5 + 11; int a[N],b[N]; void merge_sort(int a[],int l,int r){ if(l >= r) return; int mid = (l+r) >> 1; merge_sort(a,l,mid); merge_sort(a,mid+1,r); int k = 0;原创 2021-05-13 17:30:34 · 179 阅读 · 1 评论