山东省第八届acm省赛D题HEX(组合数学)
2017-05-09 20:08
411 查看
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<queue> #include<vector> #include<stack> #include<map> using namespace std; typedef long long ll; const ll mod=1e9+7; const ll maxn=2*1e5+5; ll fact[maxn],f[maxn]; ll quick_mod(ll a,ll k) { ll res=1; while(k) { if(k&1) res=res*a%mod; a=a*a%mod; k>>=1; } return res; } void init() { fact[0]=1; f[0]=1; for(int i=1;i<maxn;i++) fact[i]=fact[i-1]*i%mod; for(int i=1;i<maxn;i++) f[i]=quick_mod(fact[i],mod-2); } ll solve(ll n,ll m) { return fact *f[m]%mod*f[n-m]%mod; } int main() { init(); ll n,m,i,j,res; while(scanf("%lld%lld",&n,&m)!=EOF) { n-=min(n,m); m--; res=0; ll minn=min(n,m); for(i=0;i<=minn;i++) res=(res+solve(n+m-i,i)*solve(n+m-2*i,n-i))%mod; printf("%lld\n",res); } return 0; }
相关文章推荐
- 2017山东省第八届ACM省赛 D. HEX(组合数学)
- 山东省第八届ACM省赛 D.HEX
- 山东省第二届ACM省赛 Binomial Coeffcients(组合数学)
- 山东省第八届acm省赛 HEX
- Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
- 2017 ACM山东省赛 D - HEX 组合数学-数论
- 山东省第八届acm省赛D题 HEX
- Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
- Sdut 2164 Binomial Coeffcients (组合数学) (山东省ACM第二届省赛 D 题)
- SDUT 3896 HEX 山东第八届ACM大赛D题(组合数学)
- ACM Sdut 2158 Hello World!(数学题,排序) (山东省ACM第一届省赛C题)
- 山东省第八届ACM省赛 G 题 sum of power 解答
- ACM Sdut 2158 Hello World!(数学题,排序) (山东省ACM第一届省赛C题)
- 山东省第八届ACM省赛 I 题 Parity check 详解
- 山东省第八届acm省赛C题 巨坑
- HEX----组合数+逆元+思维 山东省第八届省赛D题
- 山东省第八届ACM省赛 K 题(CF)
- 山东省第八届acm省赛E题 三分+二分
- 山东省第八届ACM省赛A题
- 山东省第五届省赛题 G - Hearthstone II(简单组合数学应用第二类stirling数)