【 Gym - 101138K 】 The World of Trains (DP)

2020-06-02 14:08:38 浏览数 (1)

BUPT2017 wintertraining(15) #4E Gym - 101138K

题意

题解

代码

代码语言:javascript复制
#include <cstdio>
#define M 1000000007
#define N 3344
using namespace std;
int n,d,t,l;
long long f=1,g[N][N],s[N][N];
int main() {
	scanf("%d%d%d%d",&n,&d,&t,&l);
	g[0][0]=l;
	for(int i=1;i<=n;i  ){
		if(i<d)
			f=f*l%M;
		else
			f=((s[i-1][0]-s[i-d][0])%M M)%M;
		g[i][0]=f*(l-1)%M;
		s[i][0]=(s[i-1][0] f*(l-1))%M;
	}
	for(int i=1;i<=n;i  )
		for(int j=1;j<=t;j  ){
			f=s[i-1][j];
			if(i>=d)f=((f-s[i-d][j] g[i-d][j-1])%M M)%M;
			s[i][j]=(s[i-1][j] f*(l-1))%M;
			g[i][j]=(g[i-1][j-1] f*(l-1))%M;
		}
	printf("%lld",f);
	return 0;
}
dp

0 人点赞