随笔分类 - 学习总结
摘要:现在开始的复习,想到什么写点儿什么吧。1,网络流方面 sap,注意调整n的大小,因为加入了源汇点。cur数组的修改,枚举边的时候的循环,都要注意。2,LCA 用的是离线的算法Tarjan,也就是说先全部读入然后处理,下边的文章写得很好。重点是对dfs的理解和对并查集的利用 我是看的这个博客才彻底明白的,http://blog.163.com/myq_952/blog/static/8639063201132811281700/Hdu 2586 1 /** 2 *Prob : Hdu 2586 3 *Sol : LCA 4 *Data : 2012-7-20 5 *...
阅读全文
摘要:以前用的是Ford-Fulkerson 这是一个用dfs找任意增广路的算法.时间复杂度无从估计Shortest Augmenting Paths(也就是很流行的SAP算法)故名思议,就是找最短的增广路,把EK算法的O(E)时间优化到了O(V),故复杂度为O(V2E)但是可以加上间隙优化,使速度极大提升。用的是Ditch那道题,usaco的一道网络流模板题目描述在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水。这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间。因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没的烦恼(不用担心,雨水会流向附近的一条小
阅读全文
摘要:上次学习平衡树就是卡在了这里,现在就以这道题做个小结吧。题目在这里http://www.lydsy.com/JudgeOnline/problem.php?id=1500这是NOI以来出的最果的最直接的数据结构题目了,但这明显不代表他简单,第一次做的时候用了2天,现在写起来也是倍感麻烦。关于这道题的感悟我觉得这个博客说的很好,让我受益很多。http://www.cppblog.com/MatoNo1/archive/2011/06/21/149121.html为了做这道题看了很多文章,看到了郭家宝的文章,让我发现了,“原来郭家宝的splay也是用6个if语句写的”!!!!!竟然写了245行..
阅读全文
摘要:学了好久了,最开始用的是Treap,现在又学了splay,还没有掌握,先做个初步总结,算是准备个模板吧。前几天写了个splay的题,使用的以前学的splay,巨丑无比[HNOI2002]营业额统计HNOI2002 1 /* 2 排名系统 -- Treap 3 */ 4 5 #include <map> 6 #include <cmath> 7 #include <cstdio> 8 #include <cstdlib> 9 #include <iostream> 10 #include <ctime> 11 12 #def
阅读全文
摘要:这个星期的任务就是它了,看了看周伟的论文,开始做题,做一道传一道吧。【POJ 3254】Corn Fields【题目大意】给一个矩阵,可以放牧的点为1,不可以的为0,且放牧的时候任意2头牛不能相邻(包括上下和左右),问总共多少放牧方案【解析】状态转移方程很好列,用f[i][j]表示第i行的状态为j的时候的方案数,j的二进制每一位表示一个格子0为不放,1为放。很明显的有f[i][j]=∑f[i-1][k] k为与j不冲突的放法。 边界是f[1][j]=0(j合理)/1(j不合理)刚学位运算,算是用到了一些技巧:①判断是否相邻,可以用k&(k<<1)②存初始矩阵的时候可以反过来
阅读全文
摘要:最近学习了四边形不等式和斜率优化。总的来说,都是围绕着决策单调性进行的。 首先是四边形不等式,总结写过了,在这里 http://www.cnblogs.com/nevergoback/archive/2012/06/03/2532814.html现在说下斜率优化的问题: 斜率优化,就是说把决策与决策之间表示成一个类似斜率的式子,进一步分析其中的单调性,并用队列维护其有用决策。因此斜率优化又称为队列优化。 对于方程,其中,x(i),y(i)都是可以在常数时间内通过f(i)唯一决定的两个量,我们以x(i)为横轴,y(i)为纵轴建立平面直角坐标系,这样一个状态f(i)所决定的二元组就...
阅读全文
摘要:题目评测在这里http://www.lydsy.com/JudgeOnline/problem.php?id=1010一道很明显的1D1D动态规划,方程很好写f[i]=min{ f[j] + ( i-(j+1)+s[i]-s[j]-l )2}直接写的话500000的数据量会让你明白。两种做法:①四边形不等式优化 很明显的,用w[i+1,j]表示上述方程里的( i-(j+1)+s[i]-s[j]-l )2,不难验证这是个满足单调性的,也就是说对于这个方程,决策是单调的 那么根据决策单调性,很自然的就有O(nlogn)的算法了决策单调性 1 /** 2 *Prob : HNOI 20...
阅读全文
摘要:学习了四边形不等式,这类题的的方程通常是这样的:f[i,j]=opt( f[i,k-1]+f[k,j] )+cost[i,j]【我一般理解为区间动态规划】应用条件是:第一,其中的cost(I,j)是存在单调性的,即当区间[i,j]包含区间[i’,j’]时有cost(i,j)>=cost(i’,j’)第二,设i<=i’<=j<=j’,有cost(i,j)+cost(i’,j’)<=cost(i’,j)+cost(i,j’)如果上面两个条件满足的话,那么就有以下的定理:定理1:f(I,j)也满足四边形不等式即设i<=i’<=j<=j’,有f(i,j)
阅读全文
摘要:最近学了点数论的知识,关于进位制方面的。1, 进位制进位制已经很了解了,需要注意的就是两种进位制相互转化的问题了,但是相关的问题还是很多,要充分理解进制的概念,熟悉进制的表达。2,快速幂取模 求: a^b mod c 的值 解:首先要知道,a^b mod c = [ (a mod c)^b ] mod c 直接枚举1~b的话必然会超时,我们就分类讨论一下: a^b mod c = [ (a^2) mod c ]^(b div 2) mod c c为偶数 a^b mod c = [ (a^2) mod c ]^(b div 2)*a mod c c为奇数 很明显,时间复杂度降到了log(b)..
阅读全文
摘要:Treap学习总结 最近在研究平衡树,这里是我的treap学习笔记。 Treap是一种用来排序的数据结构,编写比较容易,时间复杂度也很好。Treap = Tree + Heap为了解决查找树退化的问题,在所学的数据结构里,能保证树的层数尽量少,分布尽量均匀,我们最先想到的就是完全二叉树了。而具有完全二叉树性质的数据结构很明显,堆就是其中之一,所以我们可以试想一想,如果在满足二叉查找树的前提下,同时又能满足堆的性质,是不是就可以避免这个树的退化呢?当然,如果都以权值作为标准的话,很明显是不可能做到的,但是我们可以再给每个节点添加一个修正值,让这个修正值构成堆,而原始值满足BST,这样就解决了二叉
阅读全文
摘要:线段树学习总结这个星期主要是进行线段树的复习与进一步学习,做了些题目,将我的错误与注意事项总结在此。 在这次的学习中,我才算是基本会使用了线段树,不再像以前,只能当做一种帮忙整段修改区间,求解区间最大值的数据结构,线段树的优越就在于它的树形结构,将任何操作都降到了log级别的,在此基础上可以记录很多数据,而并非只有节点的值。我的线段树习惯如下:此种写法参考了http://www.notonlysuccess.com/index.php/segment-tree-complete1, 用root表示当前节点,不记录节点区间,而是在递归过程中随着函数的改变自动更新。2, PushUp() 是把当前
阅读全文

浙公网安备 33010602011771号