上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 54 下一页
摘要: 分组赛时学到的最小乘积生成树模型,感觉这个思路非常神,可以说是数形结合的经典问题由于生成树有两个权值,我们把每个生成树的权值表示成点坐标(sa,sb)显然我们知道,乘积最小,那么点必然落在下凸壳上但由于点太多,graham之类要先知道所有点再求凸包的算法就失效了于是我们使用quickhull算法,这... 阅读全文
posted @ 2015-06-13 11:28 acphile 阅读(669) 评论(0) 推荐(0)
摘要: 分组赛结束了,虽然跟我关系不大,但是去了还是学到了不少东西day1 上午报到,在宾馆遇到大神wzy,orz好像没有参赛证发了,于是给我发了一个【工作证】,233我是工作人员了,高贵冷艳下午是常中的大神xy讲课,是world final的题,前两题都是做过的题,后面的题没做过就没太听懂……晚上是wy大... 阅读全文
posted @ 2015-06-09 17:09 acphile 阅读(629) 评论(15) 推荐(0)
摘要: 首先想到二分答案是吧,设为lim这道题难在判定,我们先不管将一个数变为0的条件先使序列满足相邻差(i-j)*lim的话,aj要变成a[i]+(i-j)*lim,否则的话,对于k(i-j)*lim即a[j]+j*lim>i*lim,怎么做很明显了吧…… 1 var a,b,d:array[0..10... 阅读全文
posted @ 2015-06-05 23:34 acphile 阅读(167) 评论(0) 推荐(0)
摘要: 这题好难,翻了一下波兰文的题解……这好像是当年唯一没人A的题目首先区间修改不难想到差分,我们令d1=x1,dn+1=-xn,di=xi-xi-1注意Σdi=0,这样对于[l,r]的修改(比如+a) 就是d[l]+a d[r+1]-a首先不难想到,对于每个di,ax+by=di一定要有解(gcd(a,... 阅读全文
posted @ 2015-06-05 23:17 acphile 阅读(157) 评论(0) 推荐(0)
摘要: 这是一道好题,要求每个三点圆覆盖的点数和 我们可以算四边形的贡献,四边形显然分成两种:凸四边形和凹四边形 显然,凹四边形的覆盖只可能是三个点组成三角形包含另一个点,所以贡献是1 凸四边形,其最小圆覆盖是以最长对角线为直径的 注意一个很重要的条件,四点不共圆,所以凸四边形的贡献是2 四边形总数是一定的 阅读全文
posted @ 2015-06-04 23:23 acphile 阅读(930) 评论(0) 推荐(0)
摘要: SAM好题,显然我们不能与每个后缀都去算LCP考虑对询问串每一位算贡献,先构建出逆序构建自动机,这样我们得到了原串的后缀树(parent树)根据parent树的定义,一个节点对应字符串出现的位置对应该节点的right集合也就是子树right集合的并某些节点代表了一个后缀,我们从开头到结尾编号为1~n... 阅读全文
posted @ 2015-06-04 22:52 acphile 阅读(580) 评论(0) 推荐(0)
摘要: 简单题,每次取出最长链,然后对于练上每个点x,终点在其子树内的链都要减去a[x]这显然可以用dfs序+线段树维护显然每个点只要删一次即可,复杂度是O(nlogn) 1 type node=record 2 s,lx,rx,mx,lp,rp,pb,pe:longint; 3 ... 阅读全文
posted @ 2015-06-04 22:25 acphile 阅读(177) 评论(0) 推荐(0)
摘要: 好题,这道题可以用线段树来快速模拟费用流寻找最长增广路这样修改怎么做也很显然了 1 type node=record 2 s,lx,rx,mx,lp,rp,pb,pe:longint; 3 end; 4 5 var tree:array[0..100010*4,0... 阅读全文
posted @ 2015-06-04 22:17 acphile 阅读(264) 评论(0) 推荐(0)
摘要: 智商太低了详细题解在这里http://blog.csdn.net/zmoiynlp/article/details/45176129 1 const max=50001; 2 var u,c,p:array[0..max] of longint; 3 g:array[0..max] of i... 阅读全文
posted @ 2015-06-04 22:11 acphile 阅读(270) 评论(0) 推荐(0)
摘要: 对和排序,显然最小是a1+a2,次小a1+a3 然后穷举哪里是a2+a3 这样a1,a2,a3就求出来了注意a2+a3只可能是前n+1项中的一个,所以穷举这步是O(n)的接下来我们把已经确定的数的和找到并标记,那么下一个未标记的和就是a1+新的数,然后依次递推下去即可 1 var v:array[0... 阅读全文
posted @ 2015-06-04 22:03 acphile 阅读(242) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 54 下一页