HDU 5698 瞬間移動

1、組合+逆元,水題。

2、也可以找規律,發現楊輝三角(我用的數學推出來的)。

3、dp打表後找規律(還沒寫)

數學:\sum_{i=1}^{m-2} C_{n-2}^i\cdot C_{m-2}^i=\sum_{i=1}^{m-2} C_{n-2}^i\cdot C_{m-2}^{m-2-i}=C_{n+m-4}^{m-2}

#include<cstdio>
#include<iostream>
using namespace std;
using LL=long long;
const int mod=1e9+7;
const int MAXN=2e5+1;

int n,m;
LL fac[MAXN]={1,1};
LL inv[MAXN]={1,1};
LL f[MAXN]={1,1};

LL c(LL a,LL b) {	//公式 
	return fac[a]*inv[b]%mod*inv[a-b]%mod;
}

int main()
{
	for(int i=2;i<MAXN;i++) {
		fac[i]=fac[i-1]*i%mod;
		f[i]=(mod-mod/i)*f[mod%i]%mod;
		inv[i]=inv[i-1]*f[i]%mod;
	}
	while(scanf("%d%d",&n,&m)==2) {
		cout<<(LL)c(m+n-4,m-2)<<endl;
	}
	return 0;	
} 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章