摘要:
首先想到费用流,但mb then exit(b) else exit(a); 9 end;10 11 function max(a,b:longint):longint;12 begin13 if a>b then exit(a) else exit(b);14 end;15 1... 阅读全文
posted @ 2014-11-07 15:42
acphile
阅读(208)
评论(0)
推荐(0)
摘要:
把堆顶和堆顶接起来,然后用树状数组模拟即可不得不说一开始我竟然把100000*100000当成不超出longint 而忘开int64,无药可救…… 1 var a,b,c:array[0..100010] of longint; 2 now,n1,n2,n,mid,i:longint; 3 ... 阅读全文
posted @ 2014-11-07 15:33
acphile
阅读(138)
评论(0)
推荐(0)
摘要:
首先先跑裸的最大流,然后加边,在残余网络上跑费用流比较水 1 const max=1000000007; 2 type node=record 3 from,flow,cost,point,next:longint; 4 end; 5 6 var edge:ar... 阅读全文
posted @ 2014-11-07 15:31
acphile
阅读(136)
评论(0)
推荐(0)
摘要:
这道题真的不难,但是细节挺多(具体见程序)题目本身而言,显然是个费用流模型(或者写KM) 1 type node=record 2 point,next,flow,cost:longint; 3 end; 4 5 var p,x,y,pre,cur,d:array... 阅读全文
posted @ 2014-11-07 15:29
acphile
阅读(193)
评论(0)
推荐(0)
摘要:
这显然是一道环形dp的题目处理环形我们都是要转化为线性来做一般有这么两种方法处理复制一段到最后 (比如说noip的能量项链)考查环形对dp的影响然后分类讨论(比如bzoj1040)这道题我们用第二种方法更好先不考虑环的问题设f[i,j,0/1]表示到第i段时间用了j段睡觉且当前(0表示为入睡,1表... 阅读全文
posted @ 2014-11-07 15:25
acphile
阅读(467)
评论(0)
推荐(0)
摘要:
平衡树模板在此!写了treap(话说好久没写splay了)注意对相同元素的处理UPD:其实这里处理的不好,每个点可以代表一个元素值,然后记录出现次数即可,不用新添一个点 1 const rd=200007; 2 var fa,key,a,count:array[0..200010] of lon... 阅读全文
posted @ 2014-11-07 15:16
acphile
阅读(192)
评论(0)
推荐(0)
摘要:
容易想到是最小割(最大权独立集)然后每个数拆成两个点,不能同时选的之间连边跑最小割,最后答案=总数-mincut/2 因为这样建图将流量变成了原来的两倍当然这道题更好的建图方法是分成奇数和偶数两个集合不难发现,奇数和奇数,偶数和偶数之间显然不能同时满足条件的所以这样直接ans=总点数-mincut ... 阅读全文
posted @ 2014-11-07 15:12
acphile
阅读(150)
评论(0)
推荐(0)
浙公网安备 33010602011771号