
并查集
wzf_2000
这个作者很懒,什么都没留下…
展开
-
【bzoj4566】[Haoi2016]找相同字符
典型的sa题。(可能可以sam?) 两串在中间加一个奇怪字符后连起来跑sa 从大到小枚举Height,统计它的贡献。然后每次统计完并查集合并。(应该可以链表搞,,然而我wa了,,还是改成并查集)#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 400009 using namespace s原创 2017-08-05 09:03:34 · 483 阅读 · 0 评论 -
【Codeforces875F】Royal Questions
直接把读入当成连边,就是个类似于最小生成树的最大生成基环树森林什么的问题。#include <bits/stdc++.h>#define gc getchar()#define ll long long#define N 200009using namespace std;int n,m,fa[N],tg[N],Ans=0;struct edge{ int x,y,val;原创 2017-10-25 16:34:30 · 505 阅读 · 0 评论 -
【Codeforces319E】Ping-Pong
因为这题是区间之间的连边以及询问连通性之类的,所以考虑用线段树维护区间的并查集。 然后由于一些不可知原因MLE了,然后我改成动态开点的就好了。(smg??) 中间边界值太复杂,并没有思考过。#include <bits/stdc++.h>#define gc getchar()#define ll long long#define mid (l+r>>1)#define inf 1e9原创 2017-10-25 16:52:26 · 652 阅读 · 0 评论 -
【Codeforces813F】Bipartite Checking
cdq分治维护并查集。 并查集时,只要按秩合并,不要路径压缩,方便还原。 (好吧,还不是看po姐博客的)#include <bits/stdc++.h>#define gc getchar()#define ll long long#define mid (l+r>>1)#define N 400009using namespace std;int n,m,sta[N],top;s原创 2017-10-26 14:23:38 · 616 阅读 · 1 评论