[学习笔记] 单位根反演
單位根反演
[k∣n]=1k∑i=0k?1ωkin[k\mid n]=\frac 1k\sum_{i=0}^{k-1}\omega_k^{in}[k∣n]=k1?∑i=0k?1?ωkin?
kkk 次單位根是 kkk 次冪為 111 的復(fù)數(shù)解 wkw_kwk?。利用單位圓和單位根的關(guān)系很容易證明。
-
k∣nk\mid nk∣n
顯然 ωkin\omega_k^{in}ωkin?,相當(dāng)于轉(zhuǎn)了 ink\frac{in}kkin? 圈單位圓,結(jié)果仍是 111。
1k∑i=0k?11=1=k∣n\frac 1k\sum_{i=0}^{k-1}1=1=k\mid nk1?∑i=0k?1?1=1=k∣n
-
k?nk\nmid nk?n
使用等比數(shù)列求和。
[k∣n]=1k∑i=0k?1ωkin=1k?ωknk?1ωkn?1[k\mid n]=\frac 1k\sum_{i=0}^{k-1}\omega_k^{in}=\frac 1k·\frac{\omega_k^{nk}-1}{\omega_k^n-1}[k∣n]=k1?∑i=0k?1?ωkin?=k1??ωkn??1ωknk??1?
∵ωknk?1=ωk0?1=0∧ωkn?1≠0\because\omega_k^{nk}-1=\omega_k^0-1=0\wedge \omega_k^n-1\neq 0∵ωknk??1=ωk0??1=0∧ωkn??1?=0
∴1k∑i=0k?1ωkin=0=[k∣n]=k?n\therefore \frac 1k\sum_{i=0}^{k-1}\omega_k^{in}=0=[k\mid n]=k\nmid n∴k1?∑i=0k?1?ωkin?=0=[k∣n]=k?n
LOJ6485. LJJ學(xué)二項(xiàng)式定理
TTT 組數(shù)據(jù),給定 n,s,a0,a1,a2,a3n,s,a_0,a_1,a_2,a_3n,s,a0?,a1?,a2?,a3?,求 ∑i=0nC(n,i)?si?ai(mod4)\sum_{i=0}^nC(n,i)·s^i·a_{i\pmod 4}∑i=0n?C(n,i)?si?ai(mod4)?。結(jié)果對(duì) 998244353998244353998244353 取模。
趁熱打鐵,我們很容易想到將 iii 按模 444 的余數(shù)進(jìn)行分類。對(duì)于每一類我們只想統(tǒng)計(jì)該統(tǒng)計(jì)的數(shù)。
∑i=0n(ni)si∑j=03aj[imod?4=j]=∑i=0n(ni)si∑j=03aj[4∣(i?j)]\sum_{i=0}^n\binom nis^i\sum_{j=0}^3a_j[i\ \text{mod}\ 4=j]=\sum_{i=0}^n\binom nis^i\sum_{j=0}^3a_j[4\mid(i-j)] i=0∑n?(in?)sij=0∑3?aj?[i?mod?4=j]=i=0∑n?(in?)sij=0∑3?aj?[4∣(i?j)]
直接單位根反演:[4∣(i?j)]=14∑k=03ω4k(i?j)[4|(i-j)]=\frac{1}{4}\sum_{k=0}^3\omega_{4}^{k(i-j)}[4∣(i?j)]=41?∑k=03?ω4k(i?j)?
?∑i=0n(ni)si?14∑j=03aj?∑k=03ω4kiω4?kj=14∑j=03aj∑k=03ω4?kj∑i=0n(ni)siω4ki\Rightarrow \sum_{i=0}^n\binom nis^i·\frac 14\sum_{j=0}^3a_j·\sum_{k=0}^3\omega_4^{ki}\omega_4^{-kj}=\frac 14\sum_{j=0}^3a_j\sum_{k=0}^3\omega_4^{-kj}\sum_{i=0}^n\binom nis^i\omega_4^{ki} ?i=0∑n?(in?)si?41?j=0∑3?aj??k=0∑3?ω4ki?ω4?kj?=41?j=0∑3?aj?k=0∑3?ω4?kj?i=0∑n?(in?)siω4ki?
二項(xiàng)式定理:∑i=0n(ni)siω4ki=∑i=0n(ni)(sω4k)i=(sω4k+1)n\sum_{i=0}^n\binom nis^i\omega_4^{ki}=\sum_{i=0}^n\binom ni(s\omega_4^k)^i=(s\omega_4^k+1)^n∑i=0n?(in?)siω4ki?=∑i=0n?(in?)(sω4k?)i=(sω4k?+1)n
?14∑j=03aj∑k=03ω4?jk(sω4k+1)n\Rightarrow \frac 14\sum_{j=0}^3a_j\sum_{k=0}^3\omega_4^{-jk}(s\omega_4^k+1)^n ?41?j=0∑3?aj?k=0∑3?ω4?jk?(sω4k?+1)n
模 998244353998244353998244353 意義下是有四次單位根的,且原根為 333,有 ω41=g(mod?1)/4\omega_4^1=g^{(mod-1)/4}ω41?=g(mod?1)/4。
直接算即可。
#include <bits/stdc++.h> using namespace std; #define int long long #define mod 998244353 int T, n, s; int a[10], w[10] = { 1, 911660635, 998244352, 86583718 };int qkpow( int x, int y ) {int ans = 1;while( y ) {if( y & 1 ) ans = ans * x % mod;x = x * x % mod;y >>= 1;}return ans; }signed main() {scanf( "%lld", &T );while( T -- ) {scanf( "%lld %lld", &n, &s );for( int i = 0;i < 4;i ++ ) scanf( "%lld", &a[i] );int ans = 0;for( int i = 0;i < 4;i ++ ) {int sum = 0;for( int j = 0;j < 4;j ++ )( sum += w[(4 - i) * j % 4] * qkpow( s * w[j] % mod + 1, n ) ) %= mod;( ans += sum * a[i] ) %= mod;}printf( "%lld\n", ans * qkpow( 4, mod - 2 ) % mod );}return 0; } /* 6 1 2 3 4 5 6 2 3 4 5 6 1 3 4 5 6 1 2 4 5 6 1 2 3 5 6 1 2 3 4 6 1 2 3 4 5 */ 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的[学习笔记] 单位根反演的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 火影大人——六道仙人讲解
- 下一篇: [HAOI2018] 染色(二项式反演+