Union Set
文章平均质量分 71
unixcsir
Coding Every Day~
展开
-
hdu_1232
/*并查集裸题*/ #include #include #define MAXN 1001 int root[MAXN], hash[MAXN]; int get_root(int x) { if( root[x] == x ) { return x; } return root[x] = get_root(root[x]); } int main(int argc, cha原创 2012-09-30 13:21:45 · 219 阅读 · 0 评论 -
hdu_1272_小希的迷宮(並查集)
題意: 略 分析: 由於是無向圖且是一棵樹,也就是n個節點,n-1條邊,題目要求是每個定點都是雙連通,也就是所有頂點都在一個強連通分量裏面,這裏可以使用求SSC的算法,但是由於十無向圖使用並查集的變成複雜度降低了很多,trick:0 0 -> No. Code: #include #include #include #include #include #include #include原创 2013-04-09 07:57:35 · 448 阅读 · 0 评论 -
hdu_1856_More is better(並查集)
題意: 給你m個關係,有A->B, B->C --> A->C,問最聚成一團的人數的最多的人數是多少 分析: 無向圖,並查集,m = 0的時候應該輸出1. Code: #include #include #include #include #include #include #include #include #include #include #include #inclu原创 2013-04-09 08:40:44 · 427 阅读 · 0 评论 -
fzu_2087_统计树边
//先对边进行排序,把相同权值的分为一组 //然后根据贪心性质进行选择 #include #include #include using namespace std; #define MAXN 100001 #define MAXM 100001 struct Edge { int u, v, w; }edge[MAXM]; int root[MAXN];原创 2012-10-11 09:46:09 · 544 阅读 · 0 评论 -
hdu_1272_小希的迷宫
// 此题首先得判断顶点数目是否等于边数目+1 // 其次是使用并查集判断图的连通性 // 此题有一个陷阱,就是输入0 0的时候输出Yes #include #include #include using namespace std; #define MAXN 100001 struct Node { int u, v; }node[MAXN]; int root原创 2012-10-10 18:25:42 · 298 阅读 · 0 评论 -
hdu_1233
/* * 最小生成树,并查集+kruskal的code如下 * The minimum spanning tree, and check the gathers + kruskal, code as follows */ #include #include #include using namespace std; #define MAXN 101 typedef struct $原创 2012-09-30 13:42:50 · 181 阅读 · 0 评论 -
hdu_1863
/* * 先用并查集判断连通性,若不连通,直接输出"?",否则输出最小生成树的值 * First investigation set to determine connectivity. * If none, direct output "?" * Otherwise, the output value of the minimum spanning tree */ #include #原创 2012-09-30 14:05:05 · 237 阅读 · 0 评论 -
hdu_1875
/* * 并查集+最小生成数 */ #include #include #include #include using namespace std; #define MAXN 101 #define MAXM 9999 #define INF 0x3f3f3f3f #define LIMITUP 100原创 2012-09-30 16:39:59 · 255 阅读 · 0 评论 -
hdu_1879
/* * 最小生成树,已修建的道路费用为0 */ #include #include #include using namespace std; #define MAXN 101 #define MAXM 10001 #define INF 0x3f3f3f3f struct Edge { int u, v, w; }edge[MAXM]; int原创 2012-09-30 17:01:44 · 218 阅读 · 0 评论 -
HDU_1213_How Many Tables(並查集)
題意: 給出N個人的M個關係,如果A認識B,B認識C,那麼C認識A,ABC三個人就可以安排在一起,問題給出M個關係之後,存在多少個圈子,使得圈子內的人全部認識。 分析: 使用並查集這數據結構在很好的時間複雜度內解決該題目 Code: #include #include #include #include #include #include #include #include #原创 2013-04-08 21:53:55 · 444 阅读 · 0 评论