随笔分类 - 算法基础课
摘要:基础课第四章 数学知识:质数、约数、欧拉函数、快速幂、exgcd、高斯消元、求组合数、容斥原理 一、质数 866. 试除法判定质数 #include<iostream> #include<cstring> #include<algorithm> using namespace std; const
阅读全文
摘要:基础课第三章 搜索与图论:DFS、BFS、树与图的优先遍历、拓扑排序、各个最短路、最小生成树、二分图 一、DFS DFS中有两个重要的概念:回溯和剪枝 当图中所有边的权重为1时,BFS搜到的一定是最短路 回溯时一定要注意恢复现场 排列数字 #include<iostream> using names
阅读全文
摘要:单链表 #include<iostream> #include<cstring> #include<algorithm> using namespace std; const int M = 1e5+10; int val[M],ne[M],idx,head; int m; void add_hea
阅读全文
摘要:第一章 基础算法:排序、高精度、二分、前缀和差分、双指针、位运算、离散化、区间合并 一、排序 快速排序 void quick_sort(int a[],int l,int r) { if(l>=r) return; int i = l-1,j = r+1;//初始化为左右边界外侧的原因:实现交换后向
阅读全文
摘要:基础课第六章:贪心(区间问题、哈夫曼树、排序不等式、绝对值不等式、推公式) 一、区间问题 905. 区间选点 思想: 将每个区间按右端点按小到大排序 从前往后依次枚举每个区间,如果当前区间已经包含选择的点,则直接跳过,否则选择当前区间的右端点 #include<iostream> #include<
阅读全文
摘要:Acwing 第五章 动态规划(一) 一、01背包问题 n个物品,容量为v的背包,每个物品有两个属性:体积vi,价值wi,每件物品只能用一次,目标求出最大价值是多少? f(i,j) 从1 - i 个物品中选,总体积不超过 j 集合:表示所有的选法 状态计算 #include<iostream> us
阅读全文