社区讨论

请教测评机相关内容,为什么是WA不是RE

P1725琪露诺参与者 3已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lqhno9rg
此快照首次捕获于
2023/12/23 14:04
2 年前
此快照最后确认于
2023/12/23 16:10
2 年前
查看原帖
下方是WA代码
CPP
#include<iostream>
#include<deque>
#include<vector>
#include<cmath>
using namespace std;
typedef long long ll;
const ll N = 2e5 + 10, M = -0x7ffffffffffffff;
ll n, l, r, ans, a[N], f[N], pre[N];
deque<vector<ll>> que;
int main() {
	ans = -0x7fffffff;
	cin >> n >> l >> r;
	for (int i = 0; i <= n; i++)cin >> a[i];
	for (int i = 1; i <= n + l; i++)pre[i] = M;
	for (int i = 0; i <= n + l; i++) {
		if (i > n) {
			ans = max(ans, pre[i]);
			continue;
		}
		while (!que.empty() && que.front()[1] < i + l - r)que.pop_front();
		while (!que.empty() && que.back()[0] <= pre[i])que.pop_back();
		vector<ll> tmp{ pre[i],i };
		que.push_back(tmp);
		pre[i + l] = que.front()[0] + a[i + l];

		//cout << i << " ";
		//for (auto j : que)cout << "{" << j[0] << " " << j[1] << "} ";
		//cout << '\n';
	}
	cout << ans << '\n';
}
WA了sub8,9
修改为
CPP
const ll N=2e5+10
CPP
const ll N=4e5+10
就能够ac了。
只是我觉得这个问题应该是数组下标访问越界的原因,为什么是WA而不是RE呢?

回复

2 条回复,欢迎继续交流。

正在加载回复...