88pts求助
  • 板块P1714 切蛋糕
  • 楼主xuan_1
  • 当前回复6
  • 已保存回复6
  • 发布时间2025/6/21 18:05
  • 上次更新2025/6/22 14:17:07
查看原帖
88pts求助
1753388
xuan_1楼主2025/6/21 18:05
#include <bits/stdc++.h>
using namespace std;
int n, k, ans = INT_MIN;
int s[600000];
deque<int> dq;
int main(){
	scanf("%d%d", &n, &k);
	dq.push_back(0);
	for (int i = 1; i <= n; i++){
		scanf("%d", &s[i]);
		s[i] += s[i - 1];
	}for (int i = 1; i <= n; i++){
		while (!dq.empty() && dq.front() < i - k){
			dq.pop_front();
		}while (!dq.empty() && s[i] <= s[dq.back()]){
			dq.pop_back();
		}dq.push_back(i);
		ans = max(ans, s[i] - s[dq.front()]);
	}printf("%d", ans);
	return 0; 
}

用的单调队列,怎么WA了?

2025/6/21 18:05
加载中...