1 条题解
-
0
自动搬运
来自洛谷,原作者为

小粉兔
Always continue; Never break;搬运于
2025-08-24 22:06:39,当前版本为作者最后更新于2018-12-02 00:25:43,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
简单题,果然很简单。
考虑差分序列(用异或代替减法),则每个元素的真实值是差分序列的异或前缀和,修改的时候只需要改 和 两个位置的差分。
用树状数组维护。#include <cstdio> int N, M, B[100001]; inline void A(int i) { for (; i <= N; i += i & -i) B[i] ^= 1; } inline int Q(int i) { int A = 0; for (; i; i -= i & -i) A ^= B[i]; return A; } int main() { scanf("%d%d", &N, &M); while (M--) { int opt, l, r; scanf("%d%d", &opt, &l); if (opt == 1) A(l), scanf("%d", &r), A(r + 1); else printf("%d\n", Q(l)); } return 0; }
- 1
信息
- ID
- 4065
- 时间
- 1000ms
- 内存
- 500MiB
- 难度
- 4
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者