Wannafly挑戰賽14 F 細胞

2022-08-02 11:12:08 字數 736 閱讀 1389

題解:ntt、二項式定理

再逆fft求出係數ans[i],本題即可解了

另:採用fft的話,複數既不方便,誤差也很大。

從fft到ntt:

由費馬小定理可知 gp-1%p=1    (p為質數)

所以利用這個性質來對應單位複數根乘方的週期性,即

**:

#includeusing namespace std;

typedef long long ll;

const ll mod=998244353;

const ll g=3;

ll kpow(ll a,ll k)

return res;

}void change(ll y,int len)

if(j

}}void fft(ll y,int len,int on)}}

if(on==-1)

}ll a[1<<20];

int main()

fft(a,(1<

ll res=0,buf=1;

for(int i=0;i

printf("%lld\n",res);

return 0;

}

Wannafly挑戰賽14 B 字典樹

題目描述 在乙個 minecraft 村莊中,村長有這一本小寫字母構成的名冊 字串的表 每個名字旁邊都記錄著這位村民的聲望值,而且有的村民還和別人同名。隨著時間的推移,因為沒有村民死亡,這個名冊變得十分大。現在需要您來幫忙維護這個名冊,支援下列 4 種操作 插入新人名 si,聲望為 ai 給定名字字...

Wannafly挑戰賽14 E 線性基

題目描述 給乙個1 base陣列,有n次操作,每次操作會使乙個位置無效。乙個區間的權值定義為這個區間裡選出一些數的異或和的最大值。求在每次操作前,所有不包含無效位置的區間的權值的最大值。輸入描述 第一行讀入乙個正整數 1 n 105 第二行讀入n個正整數,第i個表示a i 0 a i 109 第三行...

Wannafly挑戰賽A 概率DP

給你乙個長 n 的序列,m 次查詢 每次查詢給乙個 x,然後 從序列的最左端 1 開始,每次隨機的選擇乙個右端點 r,如果兩個端點間的區間和不超過 x 就進行一次分割,然後把左端點變成 r 1,否則一直隨機下去。問這樣分割出來的期望段數 第一行兩個數 n,m 之後一行 n 個數表示這個序列 之後m行...