题意:有编号为1到n的学生,然后有m组调查,每组调查中有a和b,表示该两个学生有同样的宗教信仰,问最多有多少种不同的宗教信仰 简单并查集 //#define LOCAL #include <iostream> #include <cstdio> #include <cstring> using namespace std; + ; int parent[maxn], n, m; int GetParent(int x) { return parent[x] == x ?…
http://poj.org/problem?id=2524 题意:在一所学校里面的人,都有宗教信仰,不过他们的宗教信仰有可能相同有可能不同,但你又不能直接去问他们,但你可以问他们和谁是同一个宗教.通过n次询问,求这个学校最多有多少种宗教信仰. 思路:一个并查集的水题.首先假设这个学校的人全都是不同的信仰.然后再去询问,如果两个人的信仰是相同的,合并这两个人且ans--.最后减出来的ans就是答案. #include <stdio.h> #include <iostream> #i…
//#include<bits/stdc++.h> #include<iostream> #include<stdio.h> #define max1 50005 using namespace std; int pa[max1],vis[max1]; int find(int a) { while(a!=pa[a]) { pa[a]=pa[pa[a]]; a=pa[a]; } return a; } void build(int a,int b) { int fa=f…
题意:有编号为1~n的虫子,开始假设这种昆虫是异性恋.然后已知xi 和 yi进行交配,根据已知情况分析能否推理出其中是否有同性恋 这道题和 POJ 1182 食物链 十分相似,不过在更新与父节点关系的时候要简单一些 sex数组保存的是与父节点的性别关系,如果与父节点是同性,则为0,否则是1 每次路径压缩的同时要更新sex[a] = (sex[a] + sex[temp]) % 2; 还有就是如果x 和 y 不在一个集合,两棵树进行合并的时候,考虑x px y py 四者之间的关系,有 paren…
题目链接:http://poj.org/problem?id=2236 思路很简单,傻逼的我输出写成了FALL,然后遍历的时候for循环写错了,还好很快我就Debug出来了. #include <stdio.h> struct Point { int x,y; } points[]; ]; ]= {false}; int Find_Set (int x) { if(x!=father[x]) father[x] = Find_Set(father[x]); return father[x];…
题意: 有n个电脑坏掉了,分别给出他们的坐标 有两种操作,可以O x表示修好第x台电脑,可以 S x y表示x y是否连通 两台电脑的距离不超过d便可连通,两台电脑是连通的可以直接连通也可以间接通过第三台电脑连通 思路: 每次修好一台电脑都和前面已经修好的电脑比较一下如果距离小于d而且不在同一网络,便合并在一起即可 //#define LOCAL #include <iostream> #include <cstdio> #include <cstring> using…
这道题多了一个检查是否包含所有元素 可以设一个cnt表示集合里的数量,再与外面比较 #include <cstdio> #include <iostream> #include <queue> using namespace std; #define sf scanf #define pf printf #define debug printf("!\n") #define blank printf("\n") #define m…
#include<stdio.h> #define N 31000 int pre[N]; int find(int x) { if(x!=pre[x])     pre[x]=find(pre[x]); return pre[x]; } int main() {   int n,m,i,k,s,t;   while(scanf("%d%d",&n,&m),n||m){     for(i=0;i<=n;i++)         pre[i]=i;  …
The Suspects Time Limit: 1000MS   Memory Limit: 20000K Total Submissions: 32781   Accepted: 15902 Description Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. T…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 简单并查集,统计单独成树的数量. 代码: #include <stdio.h> #include <string.h> #include <math.h> #include <limits.h> #include <algorithm> #include <iostream> #include <ctype.h> #in…