并查集
Nemaleswang
ACM退役狗一只
展开
-
hdoj 1213 How Many Tables
题目链接:How Many Tables题目大意:有一堆乱七八糟的朋友关系,然后问你一共有多少个朋友圈题目思路:并查集裸题,直接写就好了#include <bits/stdc++.h>using namespace std;int t,a,b,m,n,father[1005];int Find(int x){ if(x == father[x]) return x; return f原创 2017-05-02 12:39:56 · 301 阅读 · 0 评论 -
tyvj 1017 冗余关系
题目链接:冗余关系 很蠢的一道题目嘛,并查集裸题,给你n个关系,判断有几个关系是不需要的(我们可以从之前的关系中推出来),只需要判断当前两个值是不是在一个集合里面就可以了,在就证明多余,其他看代码#include using namespace std; int father[1005]; int Find(int x){ if(x == father[x]) r原创 2017-04-06 18:02:18 · 520 阅读 · 0 评论 -
poj 2236 Wireless Network
题目链接:Wireless Network 题目大意:给你二维平面上的m个点,最开始的时候这些点都是坏的,然后有一些操作,O代表修好编号为x的结点,S代表现在需要你去判断给定的两个点x和y是否联通,判断联通的条件是这两个点的距离不得大于d 题目思路:既然是判断联通,那么可以想到用并查集去写,然后每次修好一个点的时候从头到尾扫一遍去判断某个点和这个修好的点是不是联通另外一个已经修原创 2017-05-04 19:35:33 · 357 阅读 · 0 评论 -
poj 1161 The Suspects
题目链接:The Suspects 题目大意:给你一个n和m,代表有n个人,m个朋友团体,每个团体有k个人,朋友的朋友也是朋友,问最后跟0在一个朋友集合里面的人有多少个(包括0本身) 题目思路:并查集,直接连,连完之后判断就好#include #include #include #include #include #include #include using原创 2017-05-04 19:57:10 · 298 阅读 · 0 评论 -
hdoj 2544 最短路
题目链接:最短路 题目大意:给你n个点,m条边,然后给出m条边以及边权,问1到n的最短路 题目思路:最短路裸题,直接dij即可#include using namespace std; const int maxn = 105; vector >E[maxn]; int d[maxn]; int n,m,x,y,z; void init(){ for(int原创 2017-05-04 21:03:18 · 290 阅读 · 0 评论 -
hdoj 5883 The Best Path
题目链接:The Best Path 题目大意:给你n个点,m条边,然后每条边连接某两个点,可以自环,每个点有一个权值,问能不能有路径经过所有的边且只经过一次,路径的路径权值为经过的所有的点的权值依次异或起来,问最大的路径权值为多少 题目思路:首先我们找的路径是一个欧拉路径,而且所有的边得都在一个集合里面,也就是给的边得两个点一定在一个集合里面,如果有不在集合的边,直接输出Im原创 2017-05-06 22:02:11 · 446 阅读 · 0 评论