题意
集合 $S\subseteq \{x|x\in[0,m-1]\}$ ,由这些数组成一个长度为 $N$ 的数列,给定整数 $r(r\in[0,m-1])$,求满足数列中所有数的乘积 $\mod m$ 的值等于 $r$ 的不同的数列的有多少个。
题解
将 $S$ 和 $x$ 由 $m$ 的原根来表示,这样就可以变乘为加,将集合 $S$ 表示为 $\large f(x)=a_0x^0+a_1x^1+\cdots+a_{m-2}x^{m-2}$ , $a_i$ 表示 $g^i$ 是否属于 $S$ 将 $f(x)$ 看作一个整体,使用快速幂和 $NTT$ 求解 $f(x)^n$ ,答案就为 $x^r$ 的系数
代码
1 | ll inf =0x3f3f3f3f; |