开O2 WA,不开O2 AC?

P3807 【模板】卢卡斯定理/Lucas 定理

```cpp #include <bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e5+10; int T; ll n, m, p, fac[N], inv[N]; ll qpow(ll a, ll b, ll p) { ll ans=1; for(; b; b>>=1) { if(b&1) ans=ans*a%p; a=a*a%p; } return ans; } ll C(ll n, ll m, ll p) { //cout<<n<<" "<<m<<endl; // cout<<fac[n]<<" "<<inv[n-m]<<" "<<inv[m]<<endl; return fac[n]*inv[n-m]%p*inv[m]%p; } ll lucas(ll n, ll m, ll p) { if(!m) return 1; return C(n%p, m%p, p)*lucas(n/p, m/p, p)%p; } int main() { scanf("%d", &T); while(T--) { scanf("%lld%lld%lld", &m, &n, &p); n+=m; fac[0]=1; for(int i=1; i<p; i++) fac[i]=fac[i-1]*i%p; inv[p-1]=qpow(fac[p-1], p-2, p); //cout<<"inv "<<inv[p-1]<<endl; for(int i=p-2; i>=0; i--) inv[i]=(i+1)*inv[i+1]%p; printf("%lld\n", lucas(n, m, p)); } return 0; } ```
by 966123anyunchuan @ 2023-07-30 16:23:35


@[966123anyunchuan](/user/282292) 还有: 用c艹20$RE$,用c艹11$AC$?
by _Adolf_Hitler_ @ 2023-07-30 16:28:32


被某巨佬找出来了,没判n<m的情况
by 966123anyunchuan @ 2023-07-30 23:44:37


|