loj # 6342. hop hop expectations dp

Water problem, reverse push it again ~ 

code: 

#include <bits/stdc++.h>   
#define N 12000010
#define LL long long 
#define setIO(s) freopen(s".in","r",stdin)    
using namespace std; 
const LL mod=1000000007;  
int inv[N]; 
int main() 
{ 
	// setIO("input");   
	int n,i;  
	scanf("%d",&n); 
	LL f=0,s=0;  
	inv[1]=1; 
	for(i=2;i<=n;++i)   inv[i]=1ll*(mod-mod/i)*inv[mod%i]%mod;   
	for(i=n-1;i>=1;--i)                    
	{
		f=((s+1ll*n-1ll*i+1ll)*inv[n-i]%mod)%mod, s=(s+f)%mod; 
	} 
	printf("%lld\n",f); 
	return 0; 
}

  

Guess you like

Origin www.cnblogs.com/guangheli/p/11793020.html