社区讨论
0分 WA求调教 悬一关
P2029跳舞参与者 2已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @mjqqq2xs
- 此快照首次捕获于
- 2025/12/29 13:51 2 个月前
- 此快照最后确认于
- 2026/01/01 17:10 2 个月前
CPP
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,t;
int ps[5005],pb[5005];
int f[5005][2];
//0:踏错 1:踏对
int sum[5005];
main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>t;
for(int i=1; i<=n; i++) cin>>ps[i],sum[i]=sum[i-1]+ps[i];
for(int i=1; i<=n; i++) cin>>pb[i],f[i][0]=f[i][1]=-1e18;
int ans=-1e18;
for(int i=1; i<=n; i++) {
f[i][0]=max(f[i-1][1],f[i-1][0])-ps[i];
f[i][1]=max(f[i-1][1],f[i-1][0])+ps[i];
if(i>=t) f[i][1]=max(f[i][1],max(f[i-t][0],f[i-t][1])+sum[i]-sum[i-t]+pb[i]);
ans=max(ans,max(f[i][0],f[i][1]));
}
cout<<ans;
}
我的状态转移数组 是表是前 个中第 个踏或不踏的最优值
回复
共 3 条回复,欢迎继续交流。
正在加载回复...