算法总结
Greedy algorithms
毛线岛民
https://www.cnblogs.com/chanceYu/
展开
-
字符串匹配入门
单模匹配–KMP定义两个字符串text和pattern,pattern不断位移的过程中,需要让其中间断掉的时候剪枝Eg:ABAABAB建next数组–>最长相等前后缀[0…k] [i-k…i]i:0->pattern.length()-1,j=-1case1:p[j+1]=p[i]–>j++;case2:上一个元素内拆前后缀while(j!=-1&&...原创 2019-12-28 17:14:04 · 115 阅读 · 0 评论 -
Greedy Algorithm correctness proof
最小路径和证明对于最小权值路径和的二叉树,有两个事实:令wi, wj 是W中权重最小的两个元素,则这两个数对应的结点是兄弟结点,且这两结点在二叉树中的深度大于其它任何一个叶结点的深度。一棵树最优树,最小的两个缩成一个,同时删除最小的两个,得到的新树还是最优树第一个结论是显然的,因为根据反证法,如果这两个节点不是最深的,那么与最深的节点交换,树权值路径和就会减小,与假设矛盾。第二个结论...原创 2020-01-11 14:37:32 · 291 阅读 · 0 评论 -
Trie summary
单模匹配–KMP定义两个字符串text和pattern,pattern不断位移的过程中,需要让其中间断掉的时候剪枝Eg:ABAABAB建next数组–>最长相等前后缀[0…k] [i-k…i]i:0->pattern.length()-1,j=-1case1:p[j+1]=p[i]–>j++;case2:上一个元素内拆前后缀while(j!=-1&&...原创 2020-04-24 11:04:05 · 127 阅读 · 0 评论 -
7 DP summary
1.思路方向刷表法–考虑每个状态影响到的状态填表法–考虑每个状态的依赖状态方向:has/remain完全背包问题总体积不超过T的情况下最大重量dp[T]=dp[T-v[i]]+w[i]总体积剩余T时最大重量dp[T]=dp[T-v[i]]+w[i]总体积达到T后还剩余的最大重量dp[T]=dp[T+v[i]]+w[i]这时可以综合考虑刷表/填表法需要啊考虑的因素区别...原创 2020-04-24 10:53:55 · 241 阅读 · 0 评论 -
6 Tree & Graph
1.树的搜索--order traverse思路1:bfs(要建树的数据结构)思路2:dfs(要Node结构体)struct sq { int index; int data;};void order(int i,int j) { if (node[i].lchild == -1 && node[i].rchild == -1) { in.push_bac...原创 2020-04-24 11:03:08 · 242 阅读 · 0 评论 -
5 Searching summary
DFSPAT1103有以下几点体会:1.开销大的函数可以建表void init() { int temp = 0, index = 1; while (temp <= n) { v.push_back(temp); temp = pow(index, p); index++; }}2.结束的写法(1)正常分开两种结束,使用return 0;if (maxF...原创 2020-04-24 11:01:16 · 143 阅读 · 0 评论 -
3 Basic Strategy
二分查找在闭区间查找[begin,end],注意对找不到的处理int binary_find(vector<int>& nums, int target){ int l=0,r=nums.size()-1;//Notice while(l<r){ int mid=l+(r-l)>>1; if(nums[mid]==target)return mid; else if(nums[mid]>targe原创 2020-07-26 19:58:15 · 141 阅读 · 0 评论 -
2 暴力求解/数学问题
暴力求解/数学问题1.数学问题(1)素数算术基本定理:若a∈Za\in Za∈Z,a>1a\gt 1a>1,则有a=p1p2⋯pna=p_1p_2\cdots p_na=p1p2⋯pn,其中pip_ipi为素数证明:假定定理对所有小于a的正整数均成立 若a为素数,则结论显然成立 若a为合数,a=bca=bca=bc,其中1<b,c<a1\lt b,c\...原创 2020-04-24 10:37:40 · 239 阅读 · 0 评论 -
1 Coding style and STL summary
STL,基础数学 算法 类型 Structure function 备注 不变序列算法O(n) 顺序容器/关联容器均适用 iterator min_element(iterator first, iterator last[,Pred op]) ...原创 2020-04-24 10:59:37 · 137 阅读 · 0 评论