
acm笔记
文章平均质量分 83
Hacb
这个作者很懒,什么都没留下…
展开
-
用KMP来求字符串的循环节
利用KMP算法中的next值可以求出字符串的循环节,如ababab的循环节为ab,abcd的循环节为abcd,具体做法如下:假设字符串的长度为len,next[len]为字符串的最后一个字符的下一个字符的next值(下标从0开始),如果len% (len - next[len]) == 0,那么循环节的循环次数为len / (len -next[len]),否则为1,为什么呢?详细说明如下: 首转载 2014-08-21 09:10:12 · 1210 阅读 · 0 评论 -
Splay讲解
伸展树(Splay Tree)是AVL树不错的替代,它有以下几个特点: (1)它是二叉查找树的改进,所以具有二叉查找树的有序性。 (2)对伸展树的操作的平摊复杂度是O(log2n)。 (3)伸展树的空间要求、编程难度非常低。 提到伸展树,就不得不提到AVL树和Read-Black树,虽然这两种树能够保证各种操作在最坏情况下都为logN,但是两都实现都比较复杂。而在实际情况中,90%的访原创 2014-08-05 10:27:16 · 697 阅读 · 0 评论 -
博弈问题及SG函数(真的很经典)
博弈问题 若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多。(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要看“博弈论”的时候。) Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了。 Nim游戏是组合游戏(Comb转载 2015-07-17 08:43:53 · 575 阅读 · 0 评论 -
四边形不等式优化
引用一下(黑书所说): 当函数w(i,j)满足 w(a,c)+w(b,d) 当函数w(i, j)满足w(i', j) 调。 s(i, j)=k是指m(i, j)这个状态的最优决策 以上定理的证明自己去查些资料 今天看得lrj的书中介绍的 四边形优化 做个笔记,加强理解 最有代价用d[i,j]表示 d[i,j]=min{d[i,k-1]+d[k+1,原创 2014-07-31 20:01:49 · 507 阅读 · 0 评论 -
AC自动机模版
Trie树上的前缀指针:假设有一个节点k,他的前缀指针指向j。那么k,j满足这个性质:设root到j的距离为n,则从k之上的第n个节点到k所组成的长度为n的单词,与从root到j所组成的单词相同。 如何构建前缀指针:根据KMP的启发 root及其儿子的前缀指针指向root 对于每个节点:设这个节点上的字母为C,沿着他父亲的前缀指针遍历,直到访问到一个节点,他的儿子中也有字母为C的节点。然后把原创 2014-08-05 09:28:50 · 426 阅读 · 0 评论 -
最大权闭合子图的解法
给出一些权值为正和一些权值为负的点,然后点与点之间you原创 2014-08-06 19:58:13 · 560 阅读 · 0 评论 -
项目分配问题
一般有时候我们hui原创 2014-08-13 21:54:55 · 802 阅读 · 0 评论 -
主席树 求区间第k大数(可修改)
给出一个数列,以及多次操作,操作可以是修改某一个数值,也可以是询问某一段区间的原创 2014-07-24 09:11:25 · 3575 阅读 · 0 评论 -
划分树
划分树就是简单求区间第K大的数是多少,感觉这个性价比不高,但是还是记录下自己xuex原创 2014-08-10 16:02:25 · 388 阅读 · 0 评论 -
FFT模板
#include #include #include #include using namespace std; #define N 50002 #define eps 0.5 const double PI = acos(-1.0); struct Complex { double r, i; Complex(double r = 0, double i = 0) : r(r)原创 2016-07-27 20:43:24 · 362 阅读 · 0 评论