[SCOI2016]萌萌哒

题目

原题链接

解说

叫萌萌哒其实恶心得很……
[SCOI2016]萌萌哒_第1张图片

引自https://www.luogu.com.cn/blog/emptyset/solution-p3295

代码

#include 
using namespace std;
const int maxn = 100005, mod = 1000000007;
int n, m, fa[maxn][18], ans;
int find(int x, int k) {
	if(fa[x][k]==x) return x;
	return fa[x][k]=find(fa[x][k],k);
}
void merge(int x, int y, int k) {
    x = find(x, k), y = find(y, k);
    if(x != y) fa[x][k] = y;
}
int main() {
    scanf("%d %d", &n, &m);
    const int maxk = floor(log2(n));
    for(int i = 1; i <= n; ++i)
        for(int k = 0; k <= maxk; ++k)
            fa[i][k] = i;           
    for(int i = 1, l1, r1, l2, r2; i <= m; ++i) {
        scanf("%d %d %d %d", &l1, &r1, &l2, &r2);
        for(int k = maxk; ~k; --k)
            if(l1+(1<

幸甚至哉,歌以咏志。

你可能感兴趣的:([SCOI2016]萌萌哒)