存在式子
\[n\cdot [n|k]=\sum_^\omega_n^\\
\]我們考慮來證明一下,
若 \([n|k]=1\) ,那麼顯然 \(\omega_n^=1\) 。
若 \([n|k]\ne 1\) ,那麼後者就是乙個等比數列,我們運用求和公式 \(\frac-1}=0\) 。
我們可以利用這個式子提取出乙個多項式的整數倍係數。
\[\sum_^\rfloor}[x^]f(x)=\sum_^n[k|i][x^i]f(x)\\
=\sum_^n(\frac\sum_^\omega_k^)[x^i]f(x)\\
=\frac\sum_^\sum_^n\omega_k^\cdot [x^i]f(x)\\
=\frac\sum_^\sum_^n(\omega_k^)^i\cdot [x^i]f(x)\\
=\frac\sum_^f(w_k^j)\\\]求
\[\sum_^n(\binom\cdot s^i\cdot a_)\\
\]我們考慮由於 \(i\) 在不同位數下的取值與 \(\bmod 4\) 的值有關,所以我們想到單位根反演。所以我們先定義多項式並嘗試將其化簡。
\[f(x)=\sum_^nx^i\cdot\binom\cdot s^i=(xs+1)^n\\
\]然後我們考慮到單位根反演只能求整數倍,但是我們這裡還需要求存在餘數的情況,可以比較容易地想到平移。
\[\text=\frac\sum_^a_i\sum_^\frac}\\
\]尼瑪for
迴圈寫錯調半天。
#includeusing namespace std;
const int mod=998244353,k=4,invk=748683265;
const int w[k]=;
const int _w[k]=;
int add(int x,int y)
int sub(int x,int y)
int time(int x,int y)
int ksm(int x,int k=mod-2)
long long n;int s,a[4],res;
int solve()
這個不會是什麼 \(k\) 元生成函式吧。。。
我們貌似可以得到這麼乙個奇怪的式子,
\[\text=\sum_^\sum_^\sum_^\cdots f(w_d^a,w_d^b,w_d^c,\cdots)\\
=\sum_^\sum_^\sum_^\cdots (w_d^a+w_d^b+w_d^c+\cdots)^n\\
\]
#includeusing namespace std;
const int k=500005;
const int mod=19491001,w2=19491000,w3=18827933;
int add(int x,int y)
int time(int x,int y)
int ksm(int x,int k=mod-2)
int n,k,d;
int fact[k],ifact[k];
void init()
int main()
return printf("%d\n",time(res,ksm(ksm(d),k))),0;
} if(d==3)
} return printf("%d\n",time(res,ksm(ksm(d),k))),0;
}}
單位根反演小記 - command_block 的部落格 學習筆記 單位根反演
n k frac sum omega 證明 首先根據單位根的性質 omega 1 所以當 n k 時每一項都等於 1 有 frac sum omega 1 當 n k 不成立時,omega k neq 1 等比數列求和得 frac sum omega frac times frac k 又因為 om...
單位根反演
定理 n mid a dfrac1n sum omega n 證明 使用等比數列求和 a 0 mod n 公比不為 1 原式 dfrac1n times dfrac 1 dfrac1n times dfrac 0 a 0 mod n 公比為 1 原式 dfrac1n times n times om...
Note 單位根反演 學習筆記
單位根反演,顧名思義就是用單位根變換一類式子的形式。有關單位根的基本概念可見我的這篇部落格。單位根反演的公式很簡單 k n frack sum omega k 分類討論 k n 那麼 forall i omega k 1 所以右側為 frack sum 1 1 k not n 等比數列求和,右側為 ...