ABC 185
Table of Contents
https://atcoder.jp/contests/abc185
A. ABC Preparation
https://atcoder.jp/contests/abc185/tasks/abc185_a
B. Smartphone Addiction
https://atcoder.jp/contests/abc185/tasks/abc185_b
C. Duodecim Ferra
https://atcoder.jp/contests/abc185/tasks/abc185_c
D. Stamp
https://atcoder.jp/contests/abc185/tasks/abc185_d
E. Sequence Matching
https://atcoder.jp/contests/abc185/tasks/abc185_e
F. Range Xor Query
https://atcoder.jp/contests/abc185/tasks/abc185_f
2026/1/19 segment tree の問題であるということを知った状態で自力 AC
単純に xor で segment tree を構築し、クエリに応じて更新・取得を行う。
void solve() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
ll N, Q;
cin >> N >> Q;
auto op = [](ll a, ll b) -> ll {
return a ^ b;
};
auto e = []() -> ll {
return 0;
};
vll A(N);
rep(i, N) cin >> A[i];
segtree<ll, op, e> seg(A);
rep(i, Q) {
ll t, x, y;
cin >> t >> x >> y;
if (t == 1) {
x--;
ll val = seg.get(x);
seg.set(x, val ^ y);
} else {
x--;
cout << seg.prod(x, y) << endl;
}
}
}