社区讨论
何意味
P15342「RedStone OI R1 B」浮木保卫战参与者 4已保存回复 3
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mm94xrwk
- 此快照首次捕获于
- 2026/03/02 20:08 上周
- 此快照最后确认于
- 2026/03/05 21:05 5 天前
为什么 能AC?
CPP#include<bits/stdc++.h>
using namespace std;
const int N=2e3+10,K=5e3+10;
int n,m,k,a[N],b[N],l1[N],l2[N],r1[N],c[N],r2[N],dp[2][K][N],ans;
signed main()
{
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++) scanf("%d%d",&l1[i],&r1[i]);
for(int i=1;i<=m;i++) scanf("%d",&b[i]);
for(int i=1;i<=m;i++) scanf("%d%d",&l2[i],&r2[i]);
for(int i=1;i<=k;i++)
{
for(int j=1;j<=m;j++)
{
if(i<b[j]) c[j]=0;
else c[j]=dp[1][i-b[j]][j];
}
for(int j=1;j<=n;j++)
{
for(int l=l1[j];l<=r1[j];l++) dp[0][i][j]=max(dp[0][i][j],c[l]);
dp[0][i][j]+=a[j];
ans=max(ans,dp[0][i][j]);
}
for(int j=1;j<=n;j++) c[j]=dp[0][i][j];
for(int j=1;j<=m;j++)
{
for(int l=l2[j];l<=r2[j];l++)
{
dp[1][i][j]=max(dp[1][i][j],c[l]);
}
}
}
printf("%d",ans);
return 0;
}
求卡
回复
共 3 条回复,欢迎继续交流。
正在加载回复...