2 条题解
-
0
#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL p=1e5+3; LL fac[2100]; LL qpow(LL a,LL b) { 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) { return fac[n]*qpow(fac[m],p-2)%p*qpow(fac[n-m],p-2)%p; } int main() { int a,b,c,d,k;scanf("%d%d%d%d%d",&a,&b,&c,&d,&k); fac[0]=1;for(int i=1;i<=2000;i++)fac[i]=fac[i-1]*i%p; LL ans=0; for(int i=0;i<=min(a,b);i++) { if( k-i>min(a+c-i,d) )continue; LL a1=C(b,i); LL a2=C(d,k-i); LL a3=C(a,i); LL a4=C(a+c-i,k-i); ans=(ans+a1*a2%p*a3%p*a4%p*fac[i]%p*fac[k-i]%p)%p; } printf("%lld\n",ans); return 0; } -
0
#include<bits/stdc++.h> using namespace std; typedef long long LL; const LL p=1e5+3; LL fac[2100]; LL qpow(LL a,LL b) { 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) { return fac[n]*qpow(fac[m],p-2)%p*qpow(fac[n-m],p-2)%p; } int main() { int a,b,c,d,k;scanf("%d%d%d%d%d",&a,&b,&c,&d,&k); fac[0]=1;for(int i=1;i<=2000;i++)fac[i]=fac[i-1]*i%p; LL ans=0; for(int i=0;i<=min(a,b);i++) { if( k-i>min(a+c-i,d) )continue; LL a1=C(b,i); LL a2=C(d,k-i); LL a3=C(a,i); LL a4=C(a+c-i,k-i); ans=(ans+a1*a2%p*a3%p*a4%p*fac[i]%p*fac[k-i]%p)%p; } printf("%lld\n",ans); return 0; }
- 1
信息
- ID
- 618
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- (无)
- 递交数
- 55
- 已通过
- 27
- 上传者