A - 智者一切求自我,愚者一切求他人 51Nod - 1535

2023-10-13 15:10
文章标签 51nod 自我 智者 愚者 1535

本文主要是介绍A - 智者一切求自我,愚者一切求他人 51Nod - 1535,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很久很久以前的一天,一位美男子来到海边,海上狂风大作。美男子希望在海中找到美人鱼,但是很不幸他只找到了章鱼怪。

 

然而,在世界的另一端,人们正在积极的收集怪物的行为信息,以便研制出强大的武器来对付章鱼怪。由于地震的多发,以及恶劣的天气,使得我们的卫星不能很好的定位怪物,从而不能很好的命中目标。第一次射击的分析结果会反映在一张由n个点和m条边组成的无向图上。现在让我们来确定这张图是不是可以被认为是章鱼怪。

 

为了简单起见,我们假设章鱼怪的形状是这样,他有一个球形的身体,然后有很多触须连接在他的身上。可以表现为一张无向图,在图中可以被认为由三棵或者更多的树(代表触须)组成,这些树的根在图中处在一个环中(这个环代表球形身体)。

 

题目保证,在图中没有重复的边,也没有自环。

 
Input
单组测试数据 
第一行给出两个数,n表示图中的点的个数,m表示图中边的数量。 (1≤ n≤100,0≤ m≤ n*(n-1)/2 ) 
接下来m行给出边的信息, 
每一行有两上数x,y (1≤ x,y≤ n,x≠y) 
表示点x和点y之间有边相连。每一对点最多有一条边相连,点自身不会有边到自己。
Output
共一行,如果给定的图被认为是章鱼怪则输出"FHTAGN!"(没有引号),否则输出"NO"(没有引号)。
Sample Input
6 6
6 3
6 4
5 1
2 5
1 4
5 4
Sample Output
FHTAGN!


题解:由题意可得:章鱼的特点:有一个环且连通。用并查集即可。

#include<stdio.h>
#include<string.h>
int f[1010]= {0};
int Find(int x)
{if(f[x]==x)return x;else return f[x]=Find(f[x]);
}
void merge(int x,int y)
{int t1=Find(x);int t2=Find(y);if(t1!=t2)f[t2]=t1;
}
int main()
{int n,m;while(~scanf("%d%d",&n,&m)){int x,y,num=0,sum=0;for(int i=0; i<=n; i++)f[i]=i;for(int i=0; i<m; i++){scanf("%d%d",&x,&y);if(Find(x)==Find(y))num++;///有几个环else merge(x,y);}for(int i=1; i<=n; i++){if(f[i]==i)sum++;///是否连通}if(sum==1&&num==1)printf("FHTAGN!\n");elseprintf("NO\n");}return 0;
}







































这篇关于A - 智者一切求自我,愚者一切求他人 51Nod - 1535的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/204074

相关文章

自我提升社团成立啦,欢迎各位同学加入~

欢迎加入 大家好,我是马丁,我们的自我提升社团成立啦,欢迎有新的朋友加入!! 我们的社团主要目标是帮助每个人实现自我成长、自我提升,不论他是什么年龄、什么经验、什么专业,只要有一个好学和想进步的心,都可以加入。 为了提升帮助每个人实现自我成长,目前社团选择的是做一个智能客服系统,我们希望通过搭建一个企业级的智能客服系统来帮助每个人实现自我成长。后续,还会开发更多系统~ 目前群里大多是Jav

自我反省(一)

上个学期队友陈彤问我想和他一起做项目不,我想有项目当然答应了下来,这个项目是和信管院一起做的——哈尔滨日租房开发软件。我和陈彤负责技术,他们学院的人负责销售,一开始我们都信心满满,但是我和陈彤现在除了c/c++其它什么都不会,逼着自己学安卓开发,项目中间陈彤把浩然大神也加进来了,有他在我们都觉得这个项目一定可以完成。但是我们把事情想简单了,或许浩然大神做软件没问题,但由于我和陈彤是小白,什么都

PM的自我修养——关于AndroidDesign的一些基础知识

这篇日志来自于一个问题:独立 Android 开发者如何零基础学习 UI 设计并设计出符合 Android Design 的作品? 以下是我的回复。 最初看到这个问题,我是觉得这个问题和我上周末分享的内容契合度比较高,所以一直等到周末分享结束来写这个答案,本来是想直接把PPT和讲稿复制粘贴啪啪啪,但是后来想想,觉得这样还是不太合适,我还是提炼一下答案吧。 首先,我不能赞同Va

PM的自我修养——微信5.0 for Android 设计思路(二)

容我做一次标题党,这回要写的内容其实和标题没什么关系了。 去了一趟北京,见到了冯大辉老师和池建强老师,两位都分享了自己写作和编程的故事,让人心向往之。 继续走之前的坑。微信支付。 第一次使用微信支付的时候,是在一次美团团购用支付宝支付然后提示我手机没有安装支付宝的时候。我手机上第三页第三个应用那不是支付宝那是啥?情急之下,我发现手机里还有个微信支付。之后就是绑卡,验证等等。整

PM的自我修养——微信5.0 for Android 设计思路(一)

之前有个朋友让我们做一个拆字的APP,最近他又提了一个新需求,能不能顺便做一个微信平台? 下午腾讯的人来讲课,当时老师问起有多少人依然把手机QQ作为主要通讯工具,举手的人寥寥无几……我就是那个几……虽然我清楚地知道,在场的很多人属于懒得表态,但是这也可以说明一些问题,比如,在腾讯内部,也许早已经确认了微信的战略地位和市场表现超过手机QQ,再比如,确实有很多人从QQ走向了微信。 我个人对于

【51nod】算法马拉松4 F 移数字 【快速求N!%P】【FFT】

传送门:【51nod】算法马拉松4 F 移数字 涉及知识点:多项式求逆,多项式除法,多点插值,阶乘取模。 对于N!%P,复杂度为 O(N−−√log2N−−√) O(\sqrt N \log^2\sqrt N)。 但常数巨大,和暴力算实际复杂度只相差常数= = 这个是可以扩展到组合数取模的~ my  code: my~~code: #include <stdio.h>#includ

陈坤2024行走的力量启程 重归自然感受自我

近日,由陈坤发起的心灵建设公益项目“行走的力量”发布2024宣传片,今年行走以“行止由心,自然生长”为主题,向大家传递希望在行走的过程中感受自我,自由生长,同时发出“你,为什么而出发”的提问,开启第14年的行走。 从2011年项目发起,到现在已经走了十四年,每次出发,都是全新的收获。陈坤和团队通过网络进行志愿者招募,和有心人一起同行,开启长达一周左右的行走,不仅是拥抱自然,更是为了在这个

程序员的自我修养--术语随笔

PLT PLT(Procedure Linkage Table)是用于动态链接共享库中函数调用的一种数据结构,它在程序运行时起着至关重要的作用。下面是对 PLT 的详细解释:作用: PLT 主要用于实现库函数的延迟绑定(dynamic binding)。它负责将程序中对共享库中函数的调用映射到最终的共享库函数的地址上,并且支持共享库的重定位。 实现原理: 当一个程序调用共享库中的函数时,对应的

程序员的自我提升

转自:http://www.cnblogs.com/jixiangxiang-infohold/archive/2013/03/06/2945367.html IT技术的发展日新月异,新技术层出不穷,具有良好的学习能力,能及时获取新知识、随时补充和丰富自己,已成为程序员职业发展的核心竞争力。本文中,作者结合多年的学习经验总结出了提高程序员学习能力的三个要点。 众所周知,现在是一个知识爆炸的

如何进一步自我提升?

如何进一步自我提升? 思考,语言组织和沟通能力,把自己沟通中不自信的东西去除掉。 业务响应能力。 抓重点。深度上,思考出彩的点,聚焦在核心的业务上,如何做出花来。 技术重点是什么?想清楚再做,设计的亮点在哪里。 作为TM,协调资源和调度,事情做完了,只是第一步。业务有没有价值,能不能把核心价值的点拿过来做。 一定要有产出(文档,ata),阶段性review,总结粒度不能太细和太粗。