摘要:
结论:固定端点的所有子段GCD只会有$O(\log)$种,因为一个数的质因子个数是这个级别的。 从左到右枚举右端点,用一个数组记录所有GCD相同的子段的第一个位置,每次线性更新与合并。$O(n\log n)$ 阅读全文
摘要:
有一个结论:对于边<u,v>,若这是u到v的唯一路径,则这条边显然不可被删去,否则必然可以被删去。 因为若u到v还有其它路径,则必然是从u到某个点x再到v,由于最终答案中连通性不变,也就是最终答案中仍然可以走到x后再走到v,于是可以删去这条边。 于是大致算法就出来了:按拓扑序从后往前做,每次将这个点 阅读全文
摘要:
一开始写了7个DP方程,然后意识到这种DP应该都会有一个通式。 三个条件:有色行数为n,有色列数为m,颜色数p,三维容斥原理仍然成立。 于是就是求:$\sum_{i=0}^{n}\sum_{j=0}^{m}\sum_{k=0}^{p}(-1)^{n+m+p-i-j-k}\times C_n^i\ti 阅读全文
摘要:
链上是经典贪心问题,将线段全按左端点排序后把点全撒在线段右端点上。这里放到环上,倍长即可。 题目保证不存在区间包含情况,于是有一种暴力做法,先将战士的管辖区间按左端点从小到大排序,对于询问x,从x战士出发,每次走到最远(管辖区间左端点最大)的一个战士,满足这个战士的区间左端点被x的区间右端点覆盖到, 阅读全文
摘要:
建出对偶图,删除一条边时将两边的格子连边。一条边两端连通当且仅当两边的格子不连通,直接并查集处理即可。 阅读全文
摘要:
怎么也没想到是子集DP,想到了应该就没什么难度了。 首先n>21时必定为NO。 g[i][j]表示位置i后的第一个字母j在哪个位置,n*21求出。 f[S]表示S的所有全排列子序列出现的最后末尾位置,枚举最后一个字母转移。21*2^21 阅读全文
摘要:
https://www.cnblogs.com/Skyminer/p/6435544.html 先不要急于转化成几何模型,先把式子化到底再对应到几何图形中去。 阅读全文