摘要:
首先可以确定是树形DP,但这里存在跨子树的信息传递问题,这里就需要“借”的思想。 f[i][j]表示i子树内所有点都被覆盖到,且i以外j层内的点都能被覆盖到 的方案数。 g[i][j]表示i子树内离i距离不小于j的点都被覆盖到 的方案数。 这里f做了一个前缀和,g做了一个后缀和。 那么f有转移: 1 阅读全文
摘要:
结论:固定端点的所有子段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 先不要急于转化成几何模型,先把式子化到底再对应到几何图形中去。 阅读全文
摘要:
根据欧拉函数的定义式可知,可以先算出a[l]*a[l+1]*...*a[r]的值,然后枚举所有存在的质因子*(p-1)/p。 发现这里区间中一个质因子只要计算一次,所以指计算“上一个同色点在区间外”的数。记录pre就是二维数点问题了,套路地用主席树即可。 被卡常。别的OJ过了BZOJ过不了,优化常数 阅读全文
摘要:
51nod1434 区间LCM 跟容斥没有关系。首先可以确定的一个结论是:对于任意正整数,有1*2*...*n | (k+1)*(k+2)*...*(k+n)。因为这就是$C_{n+k}^{k}$。 于是这题就有:m最多枚举到2n。 于是有一个做法:对n!分解质因数,然后枚举m的同时统计已获得的所有 阅读全文