蒟蒻30分,7TLE求助
查看原帖
蒟蒻30分,7TLE求助
365433
Mark_M楼主2023/1/17 15:57
#include <iostream>
#define ll long long
#define N 200005
using namespace std;
ll m, d;
int idx = 1;
ll ans = 0;
ll num[N], ma[N * 4];

inline ll lc(ll p) {
	return p << 1;
}

inline ll rc(ll p) {
	return p << 1 | 1;
}

void PushUp(ll p, ll l, ll r) {
	ma[p] = max(ma[lc(p)], ma[rc(p)]);
}

void Build(ll p, ll l, ll r) {
	if (l == r) {
		ma[p] = num[l];
		return;
	}
	ll mid = (l + r) >> 1;
	Build(lc(p), l, mid);
	Build(rc(p), mid + 1, r);
	PushUp(p, l, r);
}

ll query(ll p,ll ql,ll qr,ll l,ll r) {
	if (ql <= l && qr >= r) {
		return ma[p];
	}
	ll mid = (l + r) >> 1;
	ll an=-0x7ffffff;
	if (ql <= mid) {
		an = max(an, query(lc(p), ql, qr, l, mid));
	}
	if (qr >= mid + 1) {
		an = max(an, query(rc(p), ql, qr, mid + 1, r));
	}
	return an;
}

int main() {
	cin >> m >> d;
	while (m--) {
		char c;
		cin >> c;
		if (c == 'A') {
			ll n;
			cin >> n;
			num[idx] = (ans + n) % d;
			Build(1,1,idx);
			idx++;
		}
		if (c == 'Q') {
			ll l;
			cin >> l;
			ll L, R;
			L = idx - l;
			R = idx - 1;
			ans = query(1, L, R, 1, idx - 1);
			cout << ans << endl;
		}
	}
	return 0;
}

我自己测试了那么亿组数据,仍找不到错误。我甜蜜的心态崩了啊~~~~

哪位善良的大佬能拯救我吗?

2023/1/17 15:57
加载中...