题解 | #第一题#

第一题

http://www.nowcoder.com/practice/7c29cdfa28274c86afc9e88c07448a10

耍赖皮,用散列表

#include <cstdio>
#include <iostream>
#include <cstring>
#include <unordered_map>
#include <vector>
#include <algorithm>

using namespace std;

unordered_map<int, int> parent;
vector<int> v;

int Find(int x){
	if(!parent.count(x)){
		return x;
	}
	return Find(parent[x]);
}

void Union(int x, int y){
	x = Find(x);
	y = Find(y);
	if(x != y){
		parent[y] = x;//暴力一点,省事 
	}
}

int main(){
	int x, y;
	while(scanf("%d%d", &x, &y) != EOF){
		v.push_back(x);
		Union(x, y);
	}
	int cnt = 0;
	sort(v.begin(), v.end());
	for(int i=0; i<v.size(); i++){
		if(i && v[i] == v[i-1]){
			continue;
		}
		if(!parent.count(v[i])){
			cnt++;
		}
	}
	printf("%d\n",cnt);
	return 0;
}
全部评论

相关推荐

03-14 16:04
已编辑
安徽农业大学 算法工程师
痴心的她allin秋...:啥笔试都挂怎么办,某9本考研下岸,练也没时间了,对算法也不感兴趣,大部分大厂笔试只能A0-1个😄
米哈游笔试
点赞 评论 收藏
分享
03-17 16:55
已编辑
广东工业大学 Web前端
他们都管我叫八股王:个人技能可以放最下面,项目描述点可以不用这么多,把可以被狠狠拷打的点尽量弄的再显眼一些,自己讲不出来的也尽量不要写
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务