hdu 3172 并查集+map

/*这里将fa[]数组初始化为-1比较方便 输入格式有点坑 看的讨论*/

 1 #include "cstdio"
 2 #include "iostream"
 3 #include "cstring"
 4 #include "vector"
 5 #include "queue"
 6 #include "map"
 7 #include "string"
 8 #include "algorithm"
 9 using namespace std;
10
11 #define MAXN 222222
12 int fa[MAXN];
13 int T, n,num;
14 string a, b;
15
16 void init()
17 {
18     num = 1;
19     for (int i = 0; i <= MAXN; ++i)
20         fa[i] = -1;
21 }
22
23 int find(int x)
24 {
25     if (fa[x] < 0) return x;
26     return fa[x] = find(fa[x]);
27 }
28
29 void merg(int a, int b)
30 {
31     int x = find(a);
32     int y = find(b);
33     if (x < y)  {
34         fa[x] += fa[y];
35         fa[y] = x;
36         cout << -fa[x] << endl;
37     }
38     else if (x > y) {
39         fa[y] += fa[x];
40         fa[x] = y;
41         cout << -fa[y] << endl;
42     }
43     //else cout << -fa[x] << endl;  加注释也可以过
44 }
45 void process()
46 {
47     cin >> n;
48     init();
49     map<string, int> s;
50     for (int i = 0; i < n; ++i) {
51         cin >> a >> b;
52         if (s[a] == 0) s[a] = num++;
53         if (s[b] == 0) s[b] = num++;
54         merg(s[a], s[b]);
55     }
56 }
57
58 int main()
59 {
60     while (cin >> T)
61         while (T--)
62             process();
63     //system("pause");
64     return 0;
65 }
时间: 2024-10-26 21:00:14

hdu 3172 并查集+map的相关文章

hdu 4514 并查集+树形dp

湫湫系列故事——设计风景线 Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 4539    Accepted Submission(s): 816 Problem Description 随着杭州西湖的知名度的进一步提升,园林规划专家湫湫希望设计出一条新的经典观光线路,根据老板马小腾的指示,新的风景线最好能建成环形,如果没有条件建成环形,

HDU 1181 并查集 or SPFA

变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 12773    Accepted Submission(s): 4733 Problem Description 呃......变形课上Harry碰到了一点小麻烦,因为他并不像Hermione那样能够记住所有的咒语而随意的将一个棒球变成刺猬什么的,但是他发现了变形咒语的一个统一规

HDU 1051 并查集+贪心

Wooden Sticks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11694    Accepted Submission(s): 4837 Problem Description There is a pile of n wooden sticks. The length and weight of each stick ar

HDU 1512 并查集+左偏树

Monkey King Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 3105    Accepted Submission(s): 1330 Problem Description Once in a forest, there lived N aggressive monkeys. At the beginning, they e

hdu 1829 并查集(食物链的弱化版)

http://acm.hdu.edu.cn/showproblem.php?pid=1829 Problem Description Background  Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs of

hdu 1856 并查集

http://acm.hdu.edu.cn/showproblem.php?pid=1856 More is better Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 327680/102400 K (Java/Others)Total Submission(s): 13672    Accepted Submission(s): 5008 Problem Description Mr Wang wants some boys

hdu 1213 并查集入门

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 How Many Tables Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 12538    Accepted Submission(s): 6145 Problem Description Today is Ignatius' b

HDU 3938 并查集

求小于L的路径点对数(路上的最大值),按权值排序,从小到大并查集建图,有点kruskal的意思. /** @Date : 2017-09-22 17:30:11 * @FileName: HDU 3938 并查集 离线.cpp * @Platform: Windows * @Author : Lweleth ([email protected]) * @Link : https://github.com/ * @Version : $Id$ */ #include <bits/stdc++.h>

HDU 1829 并查集

A Bug's Life Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 8224    Accepted Submission(s): 2631 Problem Description Background Professor Hopper is researching the sexual behavior of a rare sp