链接: http://poj.org/problem?id=1733 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#problem/H 代码: #include <iostream> #include <cstring> #include <cstdio> #include <cstdlib> #include <algorithm> #include <vector…
#include<iostream> #include<algorithm> #include<cstdio> using namespace std; <<; struct node { int l,r,ans; } q[N]; int a[N],fa[N],d[N],n,m,t_n; int get(int x) { if (x==fa[x]) return x; int root=get(fa[x]); d[x]^=d[fa[x]];//异或 retu…
Description Now and then you play the following game with your friend. Your friend writes down a sequence consisting of zeroes and ones. You choose a continuous subsequence (for example the subsequence from the third to the fifth digit inclusively) a…
链接: http://poj.org/problem?id=1182 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#problem/E 代码: #include<stdio.h> #include<queue> #include<stack> #include<string.h> using namespace std; #define maxn 100005 #define oo 0…
链接: http://poj.org/problem?id=1611 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#problem/B 代码: #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 30005 int a[N]; int n, m; int Find(int x) { if(a[x]!=x) a[x] =…
链接: http://poj.org/problem?id=2236 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82830#problem/A 代码: #include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> #include<algorithm> #include<iostream>…
思路: 对于每一条新的边的两个端点,是否是属于一颗树,要是的话,就不是一颗树.否则,就合并. 这里要注意的是,不能是森林,我这里WA了两次了.只不过在最后,查看每个节点的祖先是否是同一个就可以了. #include <stdio.h> #include <string.h> #include <algorithm> using namespace std; ; int father[maxn]; bool vis[maxn]; int Find_set(int x) {…
转自:http://blog.csdn.net/shahdza/article/details/7779230 [HDU]1213 How Many Tables 基础并查集★1272 小希的迷宫 基础并查集★1325&&poj1308 Is It A Tree? 基础并查集★1856 More is better 基础并查集★1102 Constructing Roads 基础最小生成树★1232 畅通工程 基础并查集★2120 Ice_cream's world I 基础并查集★212…
最近写了一个多星期的并查集,一瞬间贴出这么多解题报告,我想关于并查集的应用先告一段落吧,先总结一下. 在网上看到一篇关于并查集比较好的教程(姑且允许我这么说吧),不转过来是在可惜.献给爱学习的你 文章作者:Slyar 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. 等价关系与等价类 从数学上看,等价类是一个对象(或成员)的集合,在此集合中的所有对象应满足等价关系.若用符号"≡"表示集合上的等价关系,那么对于该集合中的任意对象x,y, z,下列性质…
题目传送门 /* 二分图判定+点染色:因为有很多联通块,要对所有点二分图匹配,若不能,存在点是无法分配的,no 每一次二分图匹配时,将点多的集合加大最后第一个集合去 注意:n <= 1,no,两个集合都至少有一人:ans == n,扔一个给另一个集合 */ #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <string>…