摘要: 为了涨自信,迎接noip,刷的水题,求明后天noip rp++bzoj3713 斐波那契数其实就30,40个,直接穷举bzoj3158 基本同bzoj3275bzoj3401 简单的单调队列bzoj2101 区间dp,注意下空间bzoj3400 背包bzoj3399 排序贪心bzoj3410 右端点... 阅读全文
posted @ 2014-11-07 16:54 acphile 阅读(148) 评论(0) 推荐(0)
摘要: 不是说好的20s吗,怎么我19s都超时……逗我最后还得写成c++才能过……首先不难发现询问肯定是O(1)的复杂度我们先把奇数和偶数分开排序,不难发现几个性质1.奇数的个数一定是奇数2.奇数选取随k成单调增然后就能在O(n)的时间预处理了…… 1 type arr=array[0..1000010] ... 阅读全文
posted @ 2014-11-07 16:48 acphile 阅读(157) 评论(0) 推荐(0)
摘要: 首先不难想到要先求割顶,求割顶的方法白书上有讲解由于是一个矿崩塌,所以假如一个连通块连接了两个以上割顶,那么这个连通块内显然是不用设出口的连接块只连接了一个割顶,那么出口可以设在这个连通块内任意位置由此我们可以把两个问题解决了注意特判一种情况,当不存在割顶的时候,至少要设两个出口 1 type n... 阅读全文
posted @ 2014-11-07 16:39 acphile 阅读(110) 评论(0) 推荐(0)
摘要: 其实这是一个约瑟夫问题的变种首先我们先处理这样一个问题已知n个人,编号0~n-1,每k人干掉一个,问最后留下来的是谁当n,k非常大的时候,模拟是不行的,这时候我们考虑重编号第1次退出的肯定是肯定是编号为k-1的人,这是我们对剩下的人重标号k-->0 k+1--->1 ……k-2-->n-2 也就是原... 阅读全文
posted @ 2014-11-07 16:24 acphile 阅读(152) 评论(0) 推荐(0)
摘要: 首先想到费用流,但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 阅读(151) 评论(0) 推荐(0)