UOJ Logo

NOI.AC

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#185072#2662. 折跃snow_trace1003146ms391792kbC++11633b2023-09-21 09:32:472023-09-21 12:23:20

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int mod = 1000000007;
int n,a,b,k;
int dp[5005][5005],pre[5005][5005];
signed main(){
	cin >> n >> a >> b >> k;
	dp[0][a] = 1;
	for(int i = a;i<=n;i++)pre[0][i] = 1;
	for(int i = 1;i<=k;i++){
		for(int j = 1;j<=n;j++){
			if(j<b){
				dp[i][j] = pre[i-1][(j+b-1)>>1]-dp[i-1][j];
			}if(j>b){
				dp[i][j] = pre[i-1][n]-pre[i-1][(j+b)>>1]-dp[i-1][j];
			}dp[i][j]+=mod,dp[i][j]%=mod;
	//		cout << dp[i][j] << " ";
		}for(int j = 1;j<=n;j++)pre[i][j] = (pre[i][j-1]+dp[i][j])%mod;
	//	cout << endl;
	}cout << pre[k][n] << endl;
	return 0;
}

详细

小提示:点击横条可展开更详细的信息

Test #1:

score: 10
Accepted
time: 0ms
memory: 2092kb

input:

98 18 22 94

output:

27076018

result:

ok single line: '27076018'

Test #2:

score: 10
Accepted
time: 0ms
memory: 2072kb

input:

95 94 73 92

output:

748455277

result:

ok single line: '748455277'

Test #3:

score: 10
Accepted
time: 409ms
memory: 390908kb

input:

4674 2740 4172 4983

output:

454585991

result:

ok single line: '454585991'

Test #4:

score: 10
Accepted
time: 426ms
memory: 391792kb

input:

4981 813 4046 4994

output:

226418975

result:

ok single line: '226418975'

Test #5:

score: 10
Accepted
time: 345ms
memory: 377372kb

input:

4595 3757 519 4810

output:

194357577

result:

ok single line: '194357577'

Test #6:

score: 10
Accepted
time: 393ms
memory: 378260kb

input:

4902 277 2317 4821

output:

641852228

result:

ok single line: '641852228'

Test #7:

score: 10
Accepted
time: 436ms
memory: 391468kb

input:

4516 1607 639 4990

output:

973001631

result:

ok single line: '973001631'

Test #8:

score: 10
Accepted
time: 367ms
memory: 364724kb

input:

4823 1127 3840 4648

output:

431104558

result:

ok single line: '431104558'

Test #9:

score: 10
Accepted
time: 398ms
memory: 377928kb

input:

4937 3261 2918 4817

output:

638296884

result:

ok single line: '638296884'

Test #10:

score: 10
Accepted
time: 372ms
memory: 378804kb

input:

4744 135 2414 4828

output:

30641258

result:

ok single line: '30641258'