@[_H17_](/user/743014) 您开了 3 个 $2\times2\times10^5$ 的数组,正常线段树做法只需要一个,所以会 MLE,建议参考我的代码修改。
```cpp
#include <bits/stdc++.h>
#define int long long
#define sycn ios::sync_with_stdio (0),cin.tie (0), cout.tie (0)
using namespace std;
int m, s, mod, t, a[200002], tree[800008];
void update (int x, int l, int r, int f, int k)
{
if (l == r)
{
tree[x] = k;
return;
}
int mid = (l + r) >> 1;
if (f > mid)update (x * 2 + 1, mid + 1, r, f, k);
else update (x * 2, l, mid, f, k);
tree[x] = max (tree[x * 2], tree[x * 2 + 1]) % mod;
}
int query (int x, int l, int r, int fl, int fr)
{
if (fl <= l && r <= fr)return tree[x];
int mid = (l + r) >> 1, sum = -1e18;
if (fl <= mid)sum = max (sum, query (x * 2, l, mid, fl, fr));
if (fr > mid)sum = max (sum, query (x * 2 + 1, mid + 1, r, fl, fr));
return sum % mod;
}
signed main ()
{
sycn;
cin >> m >> mod;
for (int i = 0; i < m; ++ i)
{
char op;
int x;
cin >> op >> x;
if (op == 'A')update (1, 1, m, ++ s, (x + t) % mod);
else
{
if (! x)t = 0;
else t = query (1, 1, m, s - x + 1, s) % mod;
cout << t << '\n';
}
}
return 0;
}
```
by Y_QWQ_Y @ 2024-02-10 19:56:58
@[Y_QWQ_Y](/user/677091) 我找到错了,不是这里,空间算过
by _H17_ @ 2024-02-10 19:58:20