AcWing学习笔记
AcWing学习笔记
Blueqwq
这个人很懒,什么都写了
展开
-
第五章 动态规划(一)
第五章 动态规划(一)一、背包问题1.01背包问题2.完全背包问题3.多重背包问题4.分组背包问题一、背包问题有nnn件物品和一个容量为vvv的背包。第iii件物品的体积是viv_ivi,价值是wiw_iwi。求解将哪些物品装入背包可使价值总和最大1.01背包问题01背包特点:每种物品仅有一件状态表示:定义f(i,j)f(i,j)f(i,j)表示只从前iii个物品中选择,总体积不超过jjj的最大价值,最终答案为f(n,v)f(n,v)f(n,v)状态转移:f(i,j)f(i,j)f(i,j)原创 2020-12-28 22:08:45 · 94 阅读 · 0 评论 -
第四章 数学知识(一)
第四章 数学知识(一)一、质数1.质数的判定——试除法2.质因数分解——试除法3.筛质数(1)Eratosthenes筛法(2)线性筛法一、质数1.质数的判定——试除法时间复杂度O(n)O(\sqrt n)O(n)bool is_prime(int n){ if(n<2) return false; for(int i=2;i<=n/i;i++) if(n%i==0) return false; return true;}2.质因数分解——试除法时间复杂度O(log原创 2020-12-25 17:23:39 · 543 阅读 · 0 评论 -
第三章 搜索与图论(一)
第三章 搜索与图论(一)搜索深度优先搜索(DFS)广度优先搜索(BFS)图论图搜索深度优先搜索(DFS)AcWing 842. 排列数字AcWing 843. n-皇后问题搜索方式:直接搜索到叶节点,再回溯剪枝:分为可行性剪枝和最优性剪枝可行性剪枝:判断当前状况是否合法最优性剪枝:判断当前情况是不是最优解(与当前出现的最优解进行比较)广度优先搜索(BFS)AcWing 844. 走迷宫AcWing 845. 八数码搜索方式:一层一层搜索,可以得到最短路径图论图1.图的分类分原创 2020-12-05 21:26:29 · 140 阅读 · 0 评论 -
C++ STL使用技巧
C++ STL使用技巧vector, 变长数组,倍增的思想 #include <vector> size() 返回元素个数 empty() 返回是否为空 clear() 清空 front()/back() push_back()/pop_back() begin()/end() [] 支持比较运算,按字典序 //遍历方式: for(int i=0;i<a.size();i++) fo原创 2020-11-12 21:49:53 · 165 阅读 · 0 评论 -
第二章 数据结构
第二章 数据结构链表单链表双链表栈队列普通队列循环队列链表单链表AcWing 826. 单链表head 表示头结点下标e[i] 表示节点i的值ne[i] 表示节点i的next指针是多少idx 存储当前已经用到了哪个节点int head,e[N],ne[N],idx;//初始化void init(){ head=-1; idx=0;} //将x插入到头结点void add_to_head(int x){ e[idx]=x; ne[idx]=head; head=idx+原创 2020-11-12 21:29:57 · 248 阅读 · 0 评论 -
第一章 基础算法
基础算法排序快速排序归并排序二分整数二分浮点数二分高精度高精度加法高精度减法高精度乘低精度高精度除以低精度前缀和一维前缀和二维前缀和排序快速排序AcWing 785. 快速排序void quick_sort(int q[],int l,int r){ if(l>=r) return;//只有一个元素时已经有序 int x=q[l],i=l-1,j=r+1;//x是任意找的中间值,以q[l]为例 //i和j是从两端开始的指针 while(i<j){ do i原创 2020-11-01 22:08:37 · 221 阅读 · 0 评论