生成函数好像并不遥远
stone41123
一名苦逼的OIer,欢迎交朋友。。。
展开
-
BZOJ3992:[SDOI2015]序列统计
传送门 这个题大概裸dp这样:dp(i,j)代表已经填了前i个位置,当前乘积为j的方案数C(k)代表集合S中是否存在kdp(i+1,j∗k%m)=∑kdp(i,j)∗C(k)然后这个dp是O(m2n)的,也没啥优化的办法我们尝试将∗转化成+原根是个不错的选择原根可以将m−1个不同的数字(这个题目里0可以不计)对应到m−1个不同的幂上所以我们对应了之后,dp方程就改变了:dp(i+1,(j+k)%...原创 2018-03-14 20:56:12 · 297 阅读 · 0 评论 -
BZOJ3456:城市规划
我中间有一步没开LongLong,然后快速幂的时候就GG了 大概就是: f(n)代表n个点的无向连通图数目g(n)代表n个点的无向图数目g(n)=2n(n−1)2考虑枚举1个点所在连通块的点的个数g(n)=∑i=1nC(n−1,i−1)∗f(i)∗g(n−i)这东西是不是长得很像卷积(明明是1004535809像卷积)然后我们把组合数拆开之后:g(n)=∑i=1n(n−1)!f(i)g(n−i...原创 2018-03-15 21:32:34 · 274 阅读 · 0 评论 -
BZOJ3771 : Triple (生成函数+FFT+容斥)
传送门 大概就是构造分别取一个,两个,三个,三种的生成函数 然后乘的时候肯定有算重的 就容斥就好了 代码里有式子:(rank24,有点儿小开心) #include<cstdio> #include<cstring> #include<iostream> #include<cmath> #include<algorithm> ...原创 2018-03-11 21:54:56 · 251 阅读 · 0 评论