标签:复杂度 class 暴力 一个 线段树 inline span mat 交换
T1
异或和为0则先手必败
设\(dp[i][j][k]\)代表考虑到\(i\)选了\(j\)个数(对\(d\)取模)异或和为\(k\)的方案数
假如把\(a\)从大到小排序的话便可以剪枝:
第三维是\(2^b\)(b是满足\(2^b>a[i]\)的第一个数)
复杂度\(O(1e7*d)\)
T2
设\(f[i][j][k]\)代表从S走k步到T不经过S,T的方案数
\(g[i][j][k]\)代表从S走k步到T的方案数
\(h[i][j][k]\)代表从S走k步到S不经过T的方案数
\(g\)可以暴力求出来
则有转移:
\(f[S][T][d]=g[S][T][d]-\sum_{i=1}^{d-1}f[S][T][i]*g[T][T][d-i]+h[S][T][i]*g[S][T][d-i]\)
\(h[S][T][d]=g[S][T][d]-\sum_{i=1}^{d-1}h[S][T][i]*g[S][S][d-i]+f[S][T][i]*g[T][S][d-i]\)
很教科书
T3
打暴力会发现可以把行列交换
设\(f[i]\)代表\(i\)这行是否被操作,\(g[i]\)是列
那么这轮后\((i,j)\)变成\(f[i]\ xor\ g[j]\)
然后把f/g=1的全部放到上/左面
现在便成了一个\(2*2\)的矩阵
每个矩阵里的数字在第一轮及以后后一定都是一样的
拿线段树求出初始状态后模拟即可
标签:复杂度 class 暴力 一个 线段树 inline span mat 交换
原文地址:https://www.cnblogs.com/AthosD/p/12589845.html