屎山代码品鉴求调
  • 板块P1725 琪露诺
  • 楼主MornHus
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/1 21:14
  • 上次更新2023/11/12 17:03:44
查看原帖
屎山代码品鉴求调
752094
MornHus楼主2023/11/1 21:14

RT,hack过不了

#include<bits/stdc++.h>
using namespace std;
#define maxn 200005
int n,l,r;
int a[maxn];
int dp[maxn];
//             [i-r-1 , i-l]

int ans;
typedef pair<int,int> pii;

//first value second id

priority_queue<pii> ql,qr;
int main(){
	cin>>n>>l>>r;
	for(int i=0;i<=n;i++){
		cin>>a[i];
	}
	for(int i=0;i<l;i++){
		ql.push(make_pair(a[i],i));
	}
	for(int i=l;i<=n;i++){
		qr.push(make_pair(dp[i-l],i-l));
		if(i-r-1>=l)ql.push(make_pair(dp[i-r-1],i-r-1));
		while(!ql.empty()){
			if(ql.top().first==qr.top().first){
				if(ql.top().second==qr.top().second){
					ql.pop();
					qr.pop();
				}else{
					break;
				}
			}else{
				break;
			}
		}
		dp[i]=qr.top().first+a[i];
	}
	for(int i=n-r-1;i<=n;i++)ans=max(ans,dp[i]);
	cout<<ans;
	return 0;
}
2023/11/1 21:14
加载中...