线段树RE & 0分求调

P5057 [CQOI2006] 简单题

正在调试 WA bug,暂时不需回复,请稍等。
by FwbAway @ 2024-09-20 09:47:43


```c++ #include <bits/stdc++.h> using namespace std; const int N = 110000; int n, m; int id, x, y; int a[N]; struct Tree { int l, r; int lz; } tree[N << 2]; inline void push_down(int u) { if (!tree[u].lz) return ; tree[u << 1].lz ^= 1; tree[u << 1 | 1].lz ^= 1; if (tree[u << 1].l == tree[u << 1].r) a[tree[u << 1].l] ^= 1; if (tree[u << 1 | 1].l == tree[u << 1 | 1].r) a[tree[u << 1 | 1].l] ^= 1; tree[u].lz = 0; } inline void build(int u, int l, int r) { tree[u].l = l, tree[u].r = r; if (l == r) { return ; } int mid = l + r >> 1; build(u << 1, l, mid); build(u << 1 | 1, mid + 1, r); } inline void chg(int u, int l, int r) { // cout << u << endl; if (l <= tree[u].l && tree[u].r <= r) { if (tree[u].l == tree[u].r) a[tree[u].l] ^= 1; else tree[u].lz ^= 1; return ; } if (tree[u].r < l || tree[u].l > r) return ; push_down(u); if (l <= tree[u << 1].r) chg(u << 1, l, r); if (tree[u << 1 | 1].l <= r) chg(u << 1 | 1, l, r); } inline int search(int u, int id) { if (tree[u].l == tree[u].r) { return a[tree[u].l]; } push_down(u); if (id <= tree[u << 1].r) search(u << 1, id); else search(u << 1 | 1, id); } signed main() { scanf("%d%d", &n, &m); build(1, 1, n); for (int i = 1; i <= m; i++) { scanf("%d", &id); if (id == 1) { scanf("%d%d", &x, &y); chg(1, x, y); } else { scanf("%d", &x); printf("%d\n", search(1, x)); } } return 0; } /* 20 10 1 1 5 1 2 6 2 2 */ ``` 这份代码是调试 WA 之后的,但仍然RE&0分。
by FwbAway @ 2024-09-20 09:49:08


过了,不用调了。 警钟敲烂:$\texttt{int}$ 函数必须有 return 值。
by FwbAway @ 2024-09-20 09:51:15


|