BZOJ 3992: [SDOI2015]序列统计(NTT+生成函数)

3992: [SDOI2015]序列统计

Simplified Description

\(给定一个[0,m-1]范围内的数字集合S,从中选择n个数字(可重复)构成序列。给定x,求序列所有数字乘积%m后为x的序列方案数%1004535809。1<=n<=10^9,3<=m<=8000,m为素数\)

Solution

乘积为定值怎么办?化为对数即可转化为加法

对数是实数怎么办?模意义下用原根代替即可

因为取得数字不限,对于生成函数求\(n\)次方的\(X\)(\(x\)的对应原根对数)次项即可

注意NTT时对于\(>=m-1\)的次项应加回\(i \% (m-1)\)次项

 

0 0 vote
Article Rating
Subscribe
提醒
guest
0 评论
Inline Feedbacks
View all comments