T1:
首先有一个(n^2)的DP
将操作倒过来,每次相当于在之前的中插入一段相同颜色的
设计(f_{i,j})表示考虑了前i种颜色,当前总长为j的方案数
转移显然:
(f_{i,j}=f_{i-1,j}+sumlimits_{k=0}^{j-1}f_{i-1,k}*(k+1))
考虑优化
显然如果把DP的含义变为选了i种颜色,那么转移就变为:
(f_{i,j}=sumlimits_{k=0}^{j-1}f_{i-1,k}*(k+1))
只需要最后将答案乘上一个组合数就行了
(需要注意最后一种颜色是必须出现的,所以可以先算m-1的答案,最后再枚举一遍将最后一种颜色加上)
到这里就可以发现,实际上最终长度为k的答案就是(prodlimits_{i=2}^n (x+i))的第n-k次项系数
分治的乘起来就可以做到(O(nlog^2n))
但毒瘤出题人不允(yong)许
考虑倍增的构造,即知道(prodlimits_{i=2}^{2^t}(x+i))如何求(prodlimits_{i=2}^{2^{t+1}}(x+i))
拆拆式子就行了
T2:
毒瘤题,咕
T3:
看到循环同构,想到polya定理
设(F_{i,j})表示长度为i的环,染j个珠子,连续的不超过k个的方案
[ans=frac{sumlimits_{d|gcd(n,m)}varphi(d)*F_{n/d,m/d}}{n}
]
考虑F咋算,钦定第一个不染,那么就变为了序列上的经典问题,容斥一下就行了
因为总共有i-j个没有染色的珠子,所以最后需要将答案乘上(frac{i}{i-j})
因为(sigma_1)的大小大概是(nloglog n)的,所以没啥问题