分每一位来做。
所以就变成了每条边是 x 0 x^0 x0或 x 1 x^1 x1或 x 2 x^2 x2
多项式乘法是 ( m o d x 3 − 1 ) \pmod {x^3-1} (modx3−1)意义下的循环卷积。
用矩阵树定理求结果多项式。
循环卷积可以用 3 3 3次单位根 ω 3 \omega_3 ω3 来求点值后 I D F T \rm IDFT IDFT回去即可得到答案。
结束了。
A C C o d e \mathcal AC\ Code AC Code
#include<bits/stdc++.h>
#define maxn 105
#define mod 1000000007
#define maxm maxn * maxn
#define Ct const
using namespace std;
int n,m;
int x[maxm