组合递推搞一搞,注意取模即可
#include<bits/stdc++.h> using namespace std; const int mod=100003; int ans,inv[100001],c[2055][2055],a,k,b,kc,d; int f(int a,int b,int kc){return 1ll*c[a][kc]*c[b][kc]*inv[kc]%mod;} int main() { cin>>a>>b>>kc>>d>>k; inv[0]=1; for(int i=0;i<=2050;i++)c[i][0]=1; for(int i=1;i<=2050;i++)inv[i]=(inv[i-1]*i)%mod; for(int i=1;i<=2050;i++)for(int j=1;j<=i;j++) c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod; for(int i=0;i<=k;i++) ans=(ans+1ll*f(a,b,i)*f(a+kc-i,d,k-i)%mod)%mod; cout<<ans; }