如果你的思路没有问题,但是T了

AT_keyence2019_f Paper Cutting

@[WZRYWZWY](/user/704668) 这个真的对吗,$inv_N$ 被更新了两次诶)
by 沉石鱼惊旋 @ 2024-04-22 19:44:01


```cpp int qpow(int a,int b){ int res=1; while(b){ if(b&1) res=(res*a)%Mod; a=(a*a)%Mod; b>>=1; } return res; } void init(){ fac[0]=1; for(int i=1;i<=M;++i) fac[i]=(fac[i-1]*i)%Mod; inv[M]=qpow(fac[M],Mod-2); for(int i=M;i>=1;--i) inv[i-1]=(inv[i]*i)%Mod; } ``` @[沉石鱼惊旋](/user/516346) 那就这样。
by amend @ 2024-04-22 20:05:24


@[WZRYWZWY](/user/704668) 线性的应该不怎么用卡常吧,如果带个 `log` 就不好说了。
by int233 @ 2024-04-22 20:15:58


@[沉石鱼惊旋](/user/516346) 哦,那就把 ``` for (int i = N; i >= 1; i--) inv[i] = inv[i + 1] * (i + 1) % mod; ``` 改成 ``` for (int i = N-1; i >= 1; i--) inv[i] = inv[i + 1] * (i + 1) % mod; ```
by WZRYWZWY @ 2024-04-24 17:48:31


其实我的代码里是N-1的,可能是不小心删了
by WZRYWZWY @ 2024-04-24 17:50:31


|