您的位置:首页 > 其它

LA 3644 X-Plosives

2014-08-24 18:28 411 查看
最简单的并查集

多做做水题,加深一下理解

//#define LOCAL
#include <cstdio>

const int maxn = 100000 + 10;
int parent[maxn];

int GetParent(int a) { return parent[a] == a ? a : parent[a] = GetParent(parent[a]); }

int main(void)
{
#ifdef LOCAL
freopen("3644in.txt", "r", stdin);
#endif

int x, y;
while(scanf("%d", &x) == 1)
{
for(int i = 0; i < maxn; ++i)    parent[i] = i;
int cnt = 0;
while(~x)
{
scanf("%d", &y);
x = GetParent(x); y = GetParent(y);
if(x == y)    ++cnt;
else        parent[x] = y;
scanf("%d", &x);
}
printf("%d\n", cnt);
}
return 0;
}


代码君
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: