摘要: 显然容斥后转化为求树链的交。这个题非常良心的保证了查询的路径都是到祖先的,求交就很休闲了。 阅读全文
posted @ 2019-01-18 22:14 Gloid 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 显然f(i)是一个k+2项式,g(x)是f(i)的前缀和,则显然其是k+3项式,插值即可。最后要求的东西大胆猜想是个k+4项式继续插值就做完了。注意2p>maxint…… 阅读全文
posted @ 2019-01-18 21:12 Gloid 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 显然只要求出以每个位置开始的AA串数量就可以了,将其和反串同位置的结果乘一下,加起来就是答案。考虑对每种长度的字符串计数。若当前考虑的A串长度为x,我们每隔x个字符设一个关键点,求出相邻两关键点的后缀lcp和前缀lcs,交叉部分就是跨过这两个关键点的A串长度为x的AA串个数。差分一发就能对每个位置求 阅读全文
posted @ 2019-01-18 18:50 Gloid 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 数据范围过小怎么做都行。考虑优秀一点的做法。考虑dfs树上两台中心服务器间的路径,路径上所有能割掉中心服务器所在子树的点均可以成为答案。直接从两点中的任意一点开始dfs就更方便了。一开始弱智的以为只要是路径上的割点都能作为答案,wa了无数发。当然建棵圆方树也完全没问题。 阅读全文
posted @ 2019-01-18 16:49 Gloid 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 即在总流量不变的情况下调整每条边的流量。显然先二分答案变为求最小费用。容易想到直接流量清空跑费用流,但复杂度略有些高。 首先需要知道(不知道也行?)一种平时基本不用的求最小费用流的算法——消圈法。算法基于下面的定理:如果残量网络中有负环,当前费用流一定不是最小费用流(似乎很显然?)。注意到分数规划之 阅读全文
posted @ 2019-01-18 15:49 Gloid 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 设f[i]为连通图的数量,g[i]为不连通图的数量,显然有f[i]=2i*(i-1)/2-g[i],g[i]通过枚举1所在连通块大小转移,有g[i]=Σf[j]*C(i-1,j-1)·2(i-j)*(i-j-1)/2,也即f[i]=2i*(i-1)/2-(i-1)!·Σf[j]·2(i-j)*(i- 阅读全文
posted @ 2019-01-18 14:17 Gloid 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 点分治,每次考虑包含根的连通块,做树形多重背包即可,dfs序优化。注意题面给的di范围是假的,坑了我0.5h,心态炸了。 阅读全文
posted @ 2019-01-18 12:11 Gloid 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 线段树优化建图暴力拓扑排序即可。对于已确定的数,拓扑排序时dp,每个节点都尽量取最大值,如果仍与已确定值矛盾则无解。叶子连出的边表示大于号,其余边表示大于等于。 阅读全文
posted @ 2019-01-18 10:56 Gloid 阅读(259) 评论(0) 推荐(0) 编辑