@[Skies](/user/125212) 把东西分开写就好了,一堆。真心看不懂。
```cpp
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 20100403;
const int N=5e6+10;
int jie[N];
int Pow(int x,int y)
{
int a = 1;
for(;y;y>>=1,x=x*1ll*x%mod)if(y&1)a = x *1ll * a % mod;return a;
/*
if(y==0)return 1%mod;
if(y==1)return x%mod;
int u=Pow(x,y/2)%mod;
if(y&1)
{
return u*u%mod*x%mod;
}else{
return u*u%mod;
}
*/
}
int Inv(int a) {return Pow(a,mod-2);}
int C(int a,int b) {
return jie[a]*(Inv(jie[a-b]) * Inv(jie[b]) % mod) % mod;
}
signed main()
{
int n,m;
cin>>n>>m;
jie[0]=1;
for(int i=1;i<=n+m+1;i++)
{
jie[i]=jie[i-1]*i%mod;//预处理阶乘
}
int ans = (C(m+n,m) - C(n + m,m - 1))%mod;
// ans=(ans+mod)%mod;
// int ans=jie[m+n]*Pow(jie[m],mod-2)%mod*Pow(jie[n],mod-2)%mod-jie[m+n]*Pow(jie[m-1],mod-2)%mod*Pow(jie[n+1],mod-2)%mod; //带公式
cout<<(int)((ans%mod)+mod)%mod;
return 0;
}
```
by JK_LOVER @ 2020-10-23 15:12:58
@[Skies](/user/125212) 哦,我知道了,你开了 unsigned long long 在减法时炸了。变成了一个大数。换成long long就可以了。
by JK_LOVER @ 2020-10-23 15:17:33
@[JK_LOVER](/user/227824) 谢谢,非常感谢
by Skies @ 2020-10-23 15:30:58