社区讨论
求调
P1198[JSOI2008] 最大数参与者 4已保存回复 8
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 8 条
- 当前快照
- 1 份
- 快照标识符
- @m5j71h6b
- 此快照首次捕获于
- 2025/01/05 13:50 去年
- 此快照最后确认于
- 2025/11/04 11:57 4 个月前
CPP
#include <bits/stdc++.h>
using namespace std;
int a[200005], st[200005][25], _log2[200005];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int m, d, cnt = 0, last = 0;
cin >> m >> d;
int lg = 0, jsq = 0;
for (int i = 1; i <= 200005; i++)
{
_log2[i] = lg;
jsq++;
if (jsq == (1 << lg))
{
jsq = 0;
lg++;
}
}
for (int k = 1; k <= m; k++)
{
char opt;
cin >> opt;
if (opt == 'A')
{
int x;
cin >> x;
a[++cnt] = (x + last) % d;
for (int j = 1; (1 << j) <= cnt; j++)
{
int l = cnt - (1 << j) + 1;
st[l][j] = max(st[l][j - 1], st[l + (1 << j - 1)][j - 1]);
}
st[cnt][0] = a[cnt];
}
if (opt == 'Q')
{
int len;
cin >> len;
int l = cnt - len + 1;
int x = _log2[cnt - l];
int ans = max(st[l][x], st[cnt - (1 << x) + 1][x]);
cout << ans << "\n";
last = ans;
}
}
return 0;
}
回复
共 8 条回复,欢迎继续交流。
正在加载回复...