9/30
BZOJ3038:线段树,不带lazy标记,直接修改叶子。
BZOJ3211:同3038
BZOJ1406:将式子转换成[(x-1)*(x+1)%n==0]然后枚举i。当i=x-1时,i*(i+2)%n==0;当i=x+1时,i*(i-2)%n==0;i是n的因数
BZOJ3916:字符串hash。分类讨论字符的位置。
BZOJ1589:缩点后是个DAG,然后DAG上dp
BZOJ1072:状压dp,或者暴力。都需要去重。不过暴力可以不用组合数学。
BZOJ1419:期望dp,设dp[i][j]为红牌取了i张,黑牌取了j张的期望。滚一滚优化空间。
BZOJ2956:写到最后懒得写乘法逆元去hzwer那偷了个inv(6)…整除分块搞一波。如果没有i≠j。根据乘法分配律发现是可以拆开的。变成n*n-∑floor(n/i)*i+m*m-∑floor(m/i)*i。后面那式子拆开分别处理就行了。
新姿势∑i^2=n*(n+1)*(2n+1)/6
BZOJ1079: 看到数据范围很小,先猜一波状压。 然后发现压不下,发现对于$c_i$相同的,他们对答案的贡献是相同的。 也就是说若$c1=c2$ 那涂1或者涂2是等价的。 然后就转换成
$f_{a,b,c,d,e,lst}$表示还有几个1的,几个2的,几个3的…转移很好理解,从哪里转移的,这次和它肯定不一样。直接(x-1)*方案数。