51nod 1535 深海探险【思维+并查集】
很久很久以前的一天,一位美男子来到海边,海上狂风大作。美男子希望在海中找到美人鱼,但是很不幸他只找到了章鱼怪。
然而,在世界的另一端,人们正在积极的收集怪物的行为信息,以便研制出强大的武器来对付章鱼怪。由于地震的多发,以及恶劣的天气,使得我们的卫星不能很好的定位怪物,从而不能很好的命中目标。第一次射击的分析结果会反映在一张由n个点和m条边组成的无向图上。现在让我们来确定这张图是不是可以被认为是章鱼怪。
为了简单起见,我们假设章鱼怪的形状是这样,他有一个球形的身体,然后有很多触须连接在他的身上。可以表现为一张无向图,在图中可以被认为由三棵或者更多的树(代表触须)组成,这些树的根在图中处在一个环中(这个环代表球形身体)。
题目保证,在图中没有重复的边,也没有自环。
单组测试数据 第一行给出两个数,n表示图中的点的个数,m表示图中边的数量。 (1≤ n≤100,0≤ m≤ n*(n-1)/2 ) 接下来m行给出边的信息, 每一行有两上数x,y (1≤ x,y≤ n,x≠y) 表示点x和点y之间有边相连。每一对点最多有一条边相连,点自身不会有边到自己。
共一行,如果给定的图被认为是章鱼怪则输出"FHTAGN!"(没有引号),否则输出"NO"(没有引号)。
6 6 6 3 6 4 5 1 2 5 1 4 5 4
FHTAGN!
思路:
1、通过仔细读题我们能够知道,这个题就是在让你判断一个无向图,是否只包含一个环&&是一个连通图。
2、那么对于连通图的判定以及环的个数的判定,我们其实都可以通过并查集来搞定。一开始无脑想着去Dfs.而且点数也不多,细心想想其实不必要Dfs.我们并查集直接判断即可。
对于两个点,如果其在一个集合中了已经,那么这个边一定是成环边,对于成环边的个数进行判定,只有这种边的个数为1的时候,并且他是一个连通图的时候,才能判断他是一条章鱼。
Ac代码:
#include<stdio.h>
#include<string.h>
using namespace std;
int f[1005];
int find(int a)
{int r=a;while(f[r]!=r)r=f[r];int i=a;int j;while(i!=r){j=f[i];f[i]=r;i=j;}return r;
}
int merge(int a,int b)
{int A,B;A=find(a);B=find(b);if(A!=B){f[B]=A;}
}
int main()
{int n,m;while(~scanf("%d%d",&n,&m)){for(int i=1;i<=n;i++)f[i]=i;int cont=0;for(int i=0;i<m;i++){int x,y;scanf("%d%d",&x,&y);if(find(x)==find(y)){cont++;}else merge(x,y);}int root=0;for(int i=1;i<=n;i++){if(f[i]==i)root++;}if(root==1&&cont==1){printf("FHTAGN!\n");}else printf("NO\n");}
}
51nod 1535 深海探险【思维+并查集】相关推荐
- 51nod - 1535 深海探险
很久很久以前的一天,一位美男子来到海边,海上狂风大作.美男子希望在海中找到美人鱼,但是很不幸他只找到了章鱼怪. 然而,在世界的另一端,人们正在积极的收集怪物的行为信息,以便研制出强大的武器来对付章鱼怪 ...
- 中石油训练赛 - 奎奎画画(思维+并查集+离线处理)
题目描述 "为你写诗,为你静止,为你做不可能的事",爱情是一种怪事,它让奎奎开始学习画画.奎奎认为一张画的艺术价值等于画上的白色联通块个数(当一个格子和它上下左右四个方向上的某个相 ...
- Harmonious Graph CodeForces - 1253D(思维+并查集)
You're given an undirected graph with n nodes and m edges. Nodes are numbered from 1 to n. The graph ...
- Codeforces Global Round 14 F. Phoenix and Earthquake 思维 + 并查集
传送门 文章目录 题意: 思路: 题意: 给你nnn个点,mmm条边,限制xxx,每个点都有沥青aia_iai,定义合并两个点即两点之间有边且au+av≥xa_u+a_v\ge xau+av≥x ...
- Codeforces Round #218 (Div. 2) D. Vessels(思维 并查集)
题意:从上到下有n个杯子,编号从1到n.每个杯子有一定体积v[i]. 两种操作:1 x y, 向x水杯倒y水; 2 x, 询问x水杯有多少水. (水杯水溢出会往下流) n,q <= 2e5 思路 ...
- 51Nod 1366 贫富差距 ( 并查集+Floyed
1366 贫富差距 题目描述 一个国家有N个公民,标记为0,1,2,-,N-1,每个公民有一个存款额.已知每个公民有一些朋友,同时国家有一条规定朋友间的存款额之差不能大于d.也就是说,a和b是朋友的话 ...
- 51nod 1366 贫富差距 (并查集+最短路)
一个国家有N个公民,标记为0,1,2,...,N-1,每个公民有一个存款额.已知每个公民有一些朋友,同时国家有一条规定朋友间的存款额之差不能大于d.也就是说,a和b是朋友的话,a有x元的存款,b有y元 ...
- Hrbust 1849 商品中心【贪心+思维+并查集】好题!好题!
商品中心 Time Limit: 2000 MS Memory Limit: 32768 K Total Submit: 7(5 users) Total Accepted: 3(3 users) R ...
- 【hautoj 1285 】 军团再临 【 思维+并查集】
题目描述 燃烧军团大举入侵艾泽拉斯,现以在艾星建立了大量的军事要塞,这些要塞通过若干个道路直接或间接连接.如果两个城市是连通的,那么它们处于同一连通块之中.现在抗魔联军发明了一种威力巨大的法术,每发动 ...
最新文章
- HTMLCanvasElement.toDataURL()
- 图像窗口方面 window
- 【已解决】tomcat报严重: Socket accept failed
- laravel excel迁移到lumen
- fdtd算法的matlab程序,FDTD算法的Matlab程序
- Docker化Spring Boot应用程序
- 【Flink】Flink 1.9 写入 es6 案例
- jq 如何获取和当然元素相同类名的标签_JS/JQ基于localStorage的本地数据储存指南...
- 稚晖君软件硬件开发环境总结
- 用C#写一个微信登录软件(自己写协议)
- 叶俊应浙江警官学院的邀请讲授《司法警官的心理调试实用策略》
- 史上最长的介绍BI(商业智能)的干货
- 用python绘制小猪佩奇
- [李景山php] ddos 防御基础
- iconfont图标无法显示的问题
- *Linux学习笔记
- chromebook刷机_如何在Chromebook上设置家长控制
- 超详解三子棋(优化后)【万字教程包教包会】
- 《朱元璋为何隐瞒自己的民族成份》
- SQL server连接不上服务器时的解决方案
热门文章
- vue中控制浏览器滚动
- igraph包安装教程
- 【转载】win10环境下,利用自带虚拟机hyper-v安装centos7方法详解
- 常见笔顺错误的字_语文老师整理:12组常见笔顺易错字!很实用的资料,帮孩子收好!...
- OpenCV C++实现树结构可视化(画出一棵四叉树)
- (2020年最新版)App Store 审核指南
- 那周余嘉熊掌将得队对男上加男,强人所男、修!咻咻! 团队的Beta产品测试报告...
- 商城app被攻击了之后我们应该怎么处理?
- 百度DuerOS硅谷公布普罗米修斯计划,100万美金基金吸引AI才俊
- 仿微信朋友圈拍照上传