题面 给一个 N N N 点 M M M 边的简单无向图,询问 Q Q Q 次,每次问你把编号在 [ l i , r i ] [l_i,r_i] [li,ri] 之间的边删掉后,该图是否存在奇数环,即是否不能被二染色. 1 ≤ N , M , Q ≤ 200000 1\leq N,M,Q\leq 200000 1≤N,M,Q≤200000. 题解 看了半天才搞懂官解里的奇怪分治是什么,其实就是整体二分嘛! 部分分就不多赘述了,大概就是一步步引导我们到正解的整体二分+可回退并查集(官解称其为:…
Part 1:CDQ分治 CDQ分治讲解博客 可以把CDQ分治理解为类似与归并排序求逆序对个数的一种分治算法(至少我现在是这么想的).先处理完左右两边各自对答案的贡献,在处理跨越左右两边的对答案的贡献. 例题: 逆序对(二维偏序) 过水,不讲. 三维偏序 第一维先sort,第二维由归并保证,第三维在归并时查询权值树状数组. \(Code:\) int n, k, tot; struct node{ int a, b, c, w, id; }p[N], tp[N]; int ans[N]; ll…
In the lattice points of the coordinate line there are n radio stations, the i-th of which is described by three integers: xi — the coordinate of the i-th station on the line, ri — the broadcasting range of the i-th station, fi — the broadcasting fre…
模板题,折腾了许久. cqd分治整体二分,感觉像是把询问分到答案上. #include <bits/stdc++.h> #define rep(i, a, b) for (int i = a; i <= b; i++) #define drep(i, a, b) for (int i = a; i >= b; i--) #define REP(i, a, b) for (int i = a; i < b; i++) #define pb push_back #define m…