随笔分类 - 模板
摘要:思想是分割成三角形,然后求三角形的重心。那么多边形重心就是若干个三角形的重心带权求中心,可以用质点质心公式。
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4080 求出现次数大于等于n的最长串。
阅读全文
摘要:扩展KMP可以快速求出T与S每个后缀的LCP,时间复杂度和空间复杂度都比后缀数组要优良很多。
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2089 数位DP的思想时预处理以x开头长度为len的数(例如 x000~x999)的所有情况。给出一个数,可以在log10(n)的复杂度下完成分解。
阅读全文
摘要:hash[i]=(hash[i-1]*p+idx(s[i]))%mod p和mod取不同的较大的素数
阅读全文
摘要:#include #include #include #include #include #include #include #include #include #include #include #define LL long long using namespace std; const LL MAXN = 550; const LL INF = 1000000009; LL n, m, e...
阅读全文
摘要:将一棵树剖分成log条树链,用数据结构维护每一段树链,操作复杂度从n降为log(n)*log(n).
阅读全文
摘要:LCA的求解有3种,转化为RMQ,Tarjan离线预处理,倍增法。 RMQ法:
阅读全文
摘要:扩展欧几里得可以计算出gcd的同时,计算出一组最小特解,以表示其通解 推导过程见http://blog.csdn.net/zhjchengfeng5/article/details/7786595 其中通解: x = x0 + b*t; y = y0 + a*t; 而乘法逆元则是在计算(a/b)%m
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1156 在一张二位坐标系中,给定n个点的坐标,玩一个划线游戏(线必须穿过点),Stan先手画一条垂直的线,然后Ollie画一条水平的线(要求要穿过Stan那条线所穿过的某个点)。划分后,左上和右下点数是Ollie
阅读全文
摘要:线段树写法不管,比较灵活。这里主要讨论DP实现。 其实单纯说RMQ解决的是区间最值查询是不准确的,只要满足一个区间的信息可以从它的覆盖区间获得(即[L,R]<=[L,r],[l,R] (l<=r) ,允许两个子区间重合)即可使用。重合不影响最值判断,所以最值查询是可以用RMQ的,其次如同区间gcd,
阅读全文
摘要:对单调队列的分析和说明就不赘述了,贴几个博客http://blog.csdn.net/justmeh/article/details/5844650 http://blog.csdn.net/justmeh/article/details/5844650 一般来说一个单调队列需要具备一个数组,它的头
阅读全文
摘要:注意最长公共子串(Longest CommonSubstring)和最长公共子序列(LongestCommon Subsequence, LCS)的区别:子串(Substring)是串的一个连续的部分,子序列(Subsequence)则是从不改变序列的顺序,而从序列中去掉任意的元素而获得的新序列;更
阅读全文
摘要:将DAG图转化为顺序排列的形式 可应用于DP求最长路、基于两两优劣关系求排名等题型。 前向星版代码: 邻接表版代码:
阅读全文
摘要:问题描述:约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列,求最后出列的人的原始编号。 朴素算法:链表
阅读全文
摘要:#include #include #include #define N 100005 using namespace std; int n; vector g[N]; int match[N]; bool used[N]; void addEdge(int a,int b) { g[a].push_back(b); //g[b].push_back(a); } bool ...
阅读全文
摘要:HDU-1233 dijkstra算法模板:
阅读全文
摘要:KMP是一种字符串模式匹配算法,在目标串中查找模式串的方法。 朴素查找方法在遇到目标串字串具备大量重复前缀且和模式串大部分吻合,其时间复杂度就会衰退为o(N*M),严格来说是o((N-M+1)*M)。 因此,在数据量很大的时候我们需要一种线性复杂度的算法。 KMP的优势是通过next数组记录了模式串
阅读全文