全 MLE 求调

P1198 [JSOI2008] 最大数

@[_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


|