T1
设end(i)代表以\(i\)为结尾的路径个数
设\(f[i][j][k][l]\)代表考虑了\(i\)个点
其中有j/k个点是\(end\)为奇的白/黑点
暴力就是\(O(n^4)\)的
发现转移的式子其实只跟j/k是否为0有关
并不关心他的具体值
所以只需要记录是否出现即可
复杂度\(O(n)\)
T2
容斥
设\(f[i]\)代表\(1\)能到达的点集是\(i\)的方案数(其他点不考虑)
\(g[i]\)代表从\(2\)出发
则有:
\(f[i]=2^e(i)-\sum_{j是i的真子集}f[j]*2^{e(i-j)}\)
g的转移同理
\(ans=2^m-\sum_{j是S的真子集,k是S-j的真子集}f[j]g[k]2^{e(S-j-k)}\)
T3
1>存在一种最优解使得每段相差一
2>设\(f[i]\)代表从\(i\)开始一段接下来的最大段数,\(f[i]<=f[i+1]+1\)
考虑动态维护\(Hash\)并且不断减\(f[i]\)直到合法
复杂度\(O(n+S)\),\(S\)为本质不同子串个数
原文:https://www.cnblogs.com/AthosD/p/12819961.html