1 条题解
-
0
#include<bits/stdc++.h> using namespace std; #define int long long const int N=2e5+10,P=1e9+7; int qpow(int a,int b){int ans=1;for(;b;b>>=1,a=a*a%P)if(b&1)ans=ans*a%P;return ans;} int fac[N]; int C(int n,int m){return fac[n]*qpow(fac[m],P-2)%P*qpow(fac[n-m],P-2)%P;} signed main() { int n,m,a,b;cin>>n>>m>>a>>b;int ans=0; fac[0]=1;for(int i=1;i<=N-10;i++)fac[i]=fac[i-1]*i%P; for(int i=1;i<=m-b;i++) { int h=i,w=a;if(h<w)swap(h,w); int h1=n-a,h2=m-i+1;if(h1<h2)swap(h1,h2); ans=(ans+C(h+w-2,w-1)*C(h1+h2-2,h2-1))%P; } cout<<ans; return 0; }
- 1
信息
- ID
- 9531
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 4
- 已通过
- 3
- 上传者