省选模拟26

T1:
首先有一个\(n^2\)的DP
将操作倒过来,每次相当于在之前的中插入一段相同颜色的
设计\(f_{i,j}\)表示考虑了前i种颜色,当前总长为j的方案数
转移显然:
\(f_{i,j}=f_{i-1,j}+\sum\limits_{k=0}^{j-1}f_{i-1,k}*(k+1)\)
考虑优化
显然如果把DP的含义变为选了i种颜色,那么转移就变为:
\(f_{i,j}=\sum\limits_{k=0}^{j-1}f_{i-1,k}*(k+1)\)
只需要最后将答案乘上一个组合数就行了
(需要注意最后一种颜色是必须出现的,所以可以先算m-1的答案,最后再枚举一遍将最后一种颜色加上)
到这里就可以发现,实际上最终长度为k的答案就是\(\prod\limits_{i=2}^n (x+i)\)的第n-k次项系数
分治的乘起来就可以做到\(O(n\log^2n)\)
但毒瘤出题人不允(yong)
考虑倍增的构造,即知道\(\prod\limits_{i=2}^{2^t}(x+i)\)如何求\(\prod\limits_{i=2}^{2^{t+1}}(x+i)\)
拆拆式子就行了

T2:
毒瘤题,咕

T3:
看到循环同构,想到polya定理
\(F_{i,j}\)表示长度为i的环,染j个珠子,连续的不超过k个的方案

\[ans=\frac{\sum\limits_{d|gcd(n,m)}\varphi(d)*F_{n/d,m/d}}{n} \]

考虑F咋算,钦定第一个不染,那么就变为了序列上的经典问题,容斥一下就行了
因为总共有i-j个没有染色的珠子,所以最后需要将答案乘上\(\frac{i}{i-j}\)
因为\(\sigma_1\)的大小大概是\(n\log\log n\)的,所以没啥问题

posted @ 2020-05-11 21:05  G_keng  阅读(119)  评论(0编辑  收藏  举报