样例没过,但是题目 A 了
查看原帖
样例没过,但是题目 A 了
511609
无钩七不改名楼主2023/4/4 19:46

RT.

评测记录

代码:

#include<bits/stdc++.h>
using namespace std;

int n,w,s;
long long a,f[5005][5005];
long long ans=-(1<<30);

int main(){
	scanf("%d%d%d",&n,&w,&s);
	for(int i=1;i<=n;i++){
		scanf("%lld",&a);
		int l=1,r=0,d[5005];
		if(i>w)d[++r]=w; 
		for(int j=min(i,w);j>=1;j--){
			while(l<=r&&d[l]-s>=j)l++;
			while(j>0&&l<=r&&f[i-1][d[r]]<=f[i-1][j-1])r--;
			if(j>0)d[++r]=j-1;
			f[i][j]=/*max(f[i][j],*/f[i-1][d[l]]+j*a/*)*/;
			//printf("%d %d %lld\n",i,j,f[i][j]) ;
		}
	} 
	for(int i=1;i<=w;i++)ans=max(ans,f[n][i]);
	printf("%lld",ans);
	return 0;
}

投诉 + 求 debug

2023/4/4 19:46
加载中...