摘要: 普通并查集. 合并 均摊O(log(n)) 查询 均摊O(log(n)) 1 //常用版本 2 3 //Union Find 4 int f[1005000]; 5 6 void INIT(int size) 7 { for(int i=0;ir[b]) swap(a,b);12 int... 阅读全文
posted @ 2015-02-28 20:20 DragoonKiller 阅读(1221) 评论(4) 推荐(0) 编辑
摘要: FloodFill不说了….大家都会写…..无向图割点 我们使用DFS对每个点记录两个值: 1) dfn[i] 表示点i是第几个DFS到的点. 2) low[i] 表示从点i出发,经过点i的某个子孙节点(包括它自己),然后通过非树边绕回而取得的最小的dfn值.算法正确性依赖于如下定理: ... 阅读全文
posted @ 2015-02-18 17:45 DragoonKiller 阅读(370) 评论(0) 推荐(0) 编辑
摘要: 为什么我在EN-WIKI上查不到啊TAT嗯,康托展开就是一个从n排列集合到自然数集合的映射.并且这个映射刚好对应了字典序.比如,设这个函数为C,那么C{1,2,3}=0,C{3,2,1}=5,C{2,3,1}=3.用于排列与数字的转换.使用的时候一定要注意先把排列离散化成0,1,...,n-1的排列... 阅读全文
posted @ 2015-02-18 13:59 DragoonKiller 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 差分约束是指形如 x≤y+c 的不等式组构成的变量约束.一般使用最短路 dist(v)≤dist(u)+w(u,v) 的特征求解. 最长路为 dist(v)≥dist(u)+w(u,v) . 直接给出约束条件求出它的一组解显然是没有任何问题的.那么问题来了,求特定解怎么办? 和最大?... 阅读全文
posted @ 2015-02-05 23:57 DragoonKiller 阅读(163) 评论(0) 推荐(0) 编辑
摘要: AC BZOJ 1787 轻重边剖分LCA 1 #include 2 #include 3 #include 4 5 #include 6 #include 7 #include 8 #include 9 10 #include 11 #include 1... 阅读全文
posted @ 2015-02-05 17:48 DragoonKiller 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 虽然说这玩意似乎没什么好写的.....但是不经常用....时不时就忘了....还是记一些东西吧...首先是Hungary算法.....邻接矩阵实现.....bool M[205][205];bool used[205];int mat[205];bool DFS(int x){ for(int i=... 阅读全文
posted @ 2015-01-26 16:50 DragoonKiller 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 #include 4 5 #include 6 #include 7 #include 8 #include 9 10 typedef long long int ll; 11 typedef double db;... 阅读全文
posted @ 2015-01-14 20:00 DragoonKiller 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 看文章各种不明真相...请教了一下iwtwiioi大牛...大致有个理解....建模过程1.拆边. 对于每一条给出的有向边(u,v,c,d) ,其中c指下界,d指上界,那么在实际的图中连三条只有上界没有下界的边:(S,v,c) (u,T,c) (u,v,d-c) 其中S是超级源,T是超级汇.(不同于... 阅读全文
posted @ 2015-01-01 22:09 DragoonKiller 阅读(303) 评论(0) 推荐(0) 编辑
摘要: SplayAC tyvj1728 普通平衡树 1 #include 2 #include 3 #include 4 5 #include 6 #include 7 #include 8 #include 9 10 typedef long long int ll;... 阅读全文
posted @ 2014-12-27 20:07 DragoonKiller 阅读(1169) 评论(2) 推荐(0) 编辑
摘要: 又臭又长系列233嗯,没有写除法,乘法是T(10len^3)级别.....常数极大切勿模仿233333 int SYS=10; class bign { public: int v[300]; int len... 阅读全文
posted @ 2014-12-24 21:43 DragoonKiller 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 先开帖..以后慢慢完善.....首先是struct point.自定义"点"类.用来存向量.struct point{ db x; db y; point(db a=0,db b=0):x(a),y(b){} //赋值 point operator=(point f) ... 阅读全文
posted @ 2014-12-07 16:44 DragoonKiller 阅读(127) 评论(0) 推荐(0) 编辑
摘要: AC HDU 3061 一道最大权闭合子图裸题以前写的DINIC太慢了啊TAT老T.....这个DINIC加了俩优化.......当前弧优化.在一次增广中,我们总是从某个节点一条弧一条弧地放流,也就是说我们依次把弧塞满.... 把某条弧塞满以后接下来的DFS过程中就不需要再遍历这条弧了........ 阅读全文
posted @ 2014-12-06 10:19 DragoonKiller 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 以前写筛法都这么写:埃拉托斯尼斯筛法 1 void getprime(int n) 2 { 3 for(int i=2;i<=n;i++) 4 if(!v[i]) 5 { 6 prime[ptot++]=v[i]; 7 for(int j=i<... 阅读全文
posted @ 2014-11-29 15:23 DragoonKiller 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 网上关于集合动态规划的题目好像不多?关于集合DP的题目基本没见到过多少...但是USACO 2013 Nov. Gold T3居然直接考了个裸的......于是就怒学一发...集合DP,意思是我们定义状态的时候使用集合.一般我们定状态,比如LIS(最长上升子序列), d[i]: 以第i个元素结尾的最... 阅读全文
posted @ 2014-11-22 12:56 DragoonKiller 阅读(114) 评论(0) 推荐(0) 编辑