摘要:
这是一道好题,要求每个三点圆覆盖的点数和 我们可以算四边形的贡献,四边形显然分成两种:凸四边形和凹四边形 显然,凹四边形的覆盖只可能是三个点组成三角形包含另一个点,所以贡献是1 凸四边形,其最小圆覆盖是以最长对角线为直径的 注意一个很重要的条件,四点不共圆,所以凸四边形的贡献是2 四边形总数是一定的
阅读全文
摘要:
SAM好题,显然我们不能与每个后缀都去算LCP考虑对询问串每一位算贡献,先构建出逆序构建自动机,这样我们得到了原串的后缀树(parent树)根据parent树的定义,一个节点对应字符串出现的位置对应该节点的right集合也就是子树right集合的并某些节点代表了一个后缀,我们从开头到结尾编号为1~n...
阅读全文
摘要:
简单题,每次取出最长链,然后对于练上每个点x,终点在其子树内的链都要减去a[x]这显然可以用dfs序+线段树维护显然每个点只要删一次即可,复杂度是O(nlogn) 1 type node=record 2 s,lx,rx,mx,lp,rp,pb,pe:longint; 3 ...
阅读全文
摘要:
好题,这道题可以用线段树来快速模拟费用流寻找最长增广路这样修改怎么做也很显然了 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...
阅读全文
摘要:
智商太低了详细题解在这里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...
阅读全文
摘要:
对和排序,显然最小是a1+a2,次小a1+a3 然后穷举哪里是a2+a3 这样a1,a2,a3就求出来了注意a2+a3只可能是前n+1项中的一个,所以穷举这步是O(n)的接下来我们把已经确定的数的和找到并标记,那么下一个未标记的和就是a1+新的数,然后依次递推下去即可 1 var v:array[0...
阅读全文