6个朋友(codevs 2832)
有这么一种说法:认识6个人,你就认识全世界的人。
Aiden现在有一张关系图,上面记载了N个人之间相互认识的情况。Aiden想知道,他能否只认识6个人就能间接认识这N个人呢?
第一行,两个数N,M,表示有N个人,M对认识关系。
接下来的M行,每行两个数ai,bi,表示ai与bi相互认识。
不保证认识关系不出现重复,保证ai≠bi。
N个人的编号为1...N。
若只认识6个人就能间接认识这N个人,则输出“^_^”。
若不行,则第一行输出“T_T”,第二行输出认识6个人最多能间接认识的人的个数。
输出不包括引号。
6 7
1 2
1 3
2 4
3 5
4 6
5 6
3 2
^_^
对于30%的数据,保证0<n≤1000。
对于50%的数据,保证0<n≤5000。
对于100%的数据,保证0<n≤10000,m≤10*n。
//并查集
#include<cstdio>
#include<iostream>
#include<algorithm>
#define M 10010
using namespace std;
int fa[M],num[M];
int find(int x)
{
if(fa[x]==x)return x;
return fa[x]=find(fa[x]);
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
fa[i]=i;
for(int i=;i<=m;i++)
{
int x,y;
scanf("%d%d",&x,&y);
int a=find(x);
int b=find(y);
if(a!=b)fa[a]=b;
}
int ans=;
for(int i=;i<=n;i++)
{
if(find(i)==i)ans++;
num[find(i)]++;
}
if(ans<=)printf("^_^");
else
{
printf("T_T\n");
sort(num+,num+n+);
int p=,tot=;
for(int i=;i<=n;i++)
{
if(ans-p<=)break;
if(num[i])
{
p++;
tot+=num[i];
}
}
printf("%d",n-tot);
}
return ;
}
6个朋友(codevs 2832)的更多相关文章
- T2832 6个朋友 codevs
http://codevs.cn/problem/2832/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 有这么一种说法: ...
- DP+单调队列 codevs 1748 瑰丽华尔兹(还不是很懂具体的代码实现)
codevs 1748 瑰丽华尔兹 2005年NOI全国竞赛 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题解 题目描述 Descripti ...
- codevs 1506 传话
http://codevs.cn/problem/1506/ 1506 传话 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 D ...
- codevs 搜索题汇总(青铜+白银级)
1792 分解质因数 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 青铜 Bronze 题目描述 Description 编写一个把整数N分解为质因数乘积的程序. 输入描 ...
- codevs 2639 约会计划
codevs 2639 约会计划 题目描述 Description cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错.然而,最关键的是,cc能够很好的 ...
- Codevs 3409 搬运礼物
3409 搬运礼物 CodeVS原创 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 青铜 Bronze 题解 题目描述 Description 小浣熊松松特别喜欢交 ...
- T2597 团伙 codevs
http://codevs.cn/problem/2597/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 1920年的芝加 ...
- T2639 约会计划 codevs
http://codevs.cn/problem/2639/ 题目描述 Description cc是个超级帅哥,口才又好,rp极高(这句话似乎降rp),又非常的幽默,所以很多mm都跟他关系不错.然而 ...
- codevs——T1169 传纸条
http://codevs.cn/problem/1169/ 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 De ...
随机推荐
- view的绘制原理
转:http://blog.csdn.net/berber78/article/details/42069301 自定义UI控件,需继承 View类或View的子类,并重载View类中的一些方法,不必 ...
- 活用scanf
scanf()是C语言中用于读入格式化数据(formatted data)的函数. 我们可能对scanf()的一般用法已经了然,而至于scanf()读入数据的机制恐怕并不十分清楚. 下面我将比较详细地 ...
- iOS 知识点梳理
OC的理解与特性 OC作为一门面向对象的语言,自然具有面向对象的语言特性:封装.继承.多态.它既具有静态语言的特性(如C++),又有动态语言的效率(动态绑定.动态加载等).总体来讲,OC确实是一门不错 ...
- 自动打包iOS项目
基于Lexrus的博文iOS-makefile,本文对自动打包涉及到的操作步骤以及理论基础进行了适当的补充. 请在阅读本文前先阅读<iOS makefile>.文章地址:http: ...
- goto,void,extern,sizeof实例
1.#include <stdio.h>void func(int n){ int* p = NULL; if( n < 0 ) { goto ST ...
- User表格式
"_id":基本是700多 "name":"xx01" "pwd":"123"
- hdu 2085 核反应堆
看完题,想到用结构体存储高质点和低质点,然后打表存储<33的质点数量. #include<stdio.h> struct hilo { long long hi,lo; }; int ...
- Redis 数据库
Redis 服务器 Remote Dictionay Server Redis是一个key-value持久化产品,通常被称为数据结构服务器. Redis的key是string类型: ...
- shell的执行顺序问题
&&,||,(),{},& 五个符号的运用 shell脚本执行命令的时候,有时候会依赖于前一个命令是否执行成功.而&&和||就是用来判断前一个命令执行效果的. ...
- struts2基本配置
struts.xml 放在src目录下 <?xml version="1.0" encoding="UTF-8"?> <struts> ...