1 #include<cstdio> 2 #include<iostream> 3 #define Q 20100403 4 long long n,m,a,b,k,ans=1; 5 int main() 6 { 7 scanf("%lld%lld",&n,&m); 8 b=(n-m+1)%Q; 9 for(int i=2;i<=m+n;i++) 10 b=(b*i)%Q; 11 a=1; 12 for(int i=2;i<=n+1;i++) 13 a=(a*i)%Q; 14 for(int i=2;i<=m;i++) 15 a=(a*i)%Q; 16 k=Q-2; 17 for(;k;) 18 { 19 if(k%2) 20 ans=(ans*a)%Q; 21 a=(a*a)%Q; 22 k>>=1; 23 } 24 printf("%d",(b*ans)%Q); 25 return 0; 26 }
卡特兰数答案为C(n+m,m-1)