N - Cthulhu
第三次题组 [Cloned] - Virtual Judge (vjudge.net)
【题目描述】
一个具有 n 个顶点和 m 条边的无向图。现在,世界上最好的头脑即将确定这张图是否可以被视为克苏鲁。
为了简单起见,让我们假设克苏鲁从空间里看起来就像一个附有触手的球形身体。从形式上讲,我们将把这样的无向图视为克苏鲁,它可以表示为一组三棵或更多根树,其根通过一个简单的循环连接起来。
保证图形不包含多条边和自循环。
【输入】
第一行包含两个整数 — 图形的顶点数 n 和边数 m (1 ≤ n ≤ 100, 0 ≤ m ≤
以下 m 行中的每一条都包含一对整数 x 和 y,它们表明顶点 x 和 y 之间存在一条边(1 ≤ x、y ≤ n、 x ≠ y)。对于每对顶点,它们之间最多只有一条边,没有边将顶点连接到自身。
【输出】
如果图表不是克苏鲁,请打印“NO”,如果是,则打印“FHTAGN!
解题思路
这个题是用到并查集。
并查集数组f[n],要注意在使用之前初始化,将f[i]=i,作用是:未连接边时,每个顶点的首领结点是它自己,f[i]中的i是当前的结点序号,赋值的i是它的首领结点编号。
题意大概是:将输入的信息连接为一张无向图,其中连接的无向图如果满足:只包含一个回路,回路上的任意顶点都可以延展出去。
1、在连接边的时候,用并查集判读是否形成回路, 如果形成了回路,判断这个形成的回路是否是第一个形成的回路。
2、题目中给到的点,必须全部用边连接,所以用一个计数器统计连接的边数(因为可能会出现重复连接的边,或边数不足以连接的情况)
3、没有回路的情况也需要判断,所以用了两个标记:flag和flag2
代码如下
#include <iostream>
#include <stdio.h>
using namespace std;
int f[1010];
//并查集
int find(int x)
{if (f[x] == x)return x;elsereturn find(f[x]);
}int main()
{int n, m;cin >> n >> m;//初始化f数组for (int i = 1; i <= n; i++)f[i] = i;int flag, a, b, num, flag2;flag = num = flag2 = 0;for (int i = 0; i < m; i++) {cin >> a >> b;int px = find(a), py = find(b);//两个点还未形成通路的情况if (px != py) {num++;f[px] = py;}//连接当前的点形成了回路,接下来判断这个回路是是形成的第一个回路还是第二个回路else {//如果flag==0,说明先前未形成回路,当前形成的是第一个回路if (flag==0) {num++;flag = 1;}//如果是形成的第二个回路,将flag2赋为1,结束循环,此时能判断肯定是输出noelse{flag2 = 1;break;}}}if (!flag2 && flag && num == n)cout << "FHTAGN!";elsecout << "NO";return 0;
}
N - Cthulhu相关推荐
- Codeforce Cthulhu
题目:Cthulhu 题意:就是让你找一个简单的环,而且这个环不需要经过所有的点,只需要经过某些点就可以了,如果存在输出 FHTAGN! ,否则输出NO. 思路:简单的环就是只存在一个环,不存在多种环 ...
- CF103B Cthulhu 解题报告
CF103B Cthulhu 解题报告 1 题目链接 传送门 2 题目大意 题目 : 克苏鲁 (什么玩意儿) 题目大意 : 给定一个 n n n个定点 m m m条边的无向图,问该图是否唯一存在一个环 ...
- Codeforces 103B. Cthulhu 并查集运用
题目链接: 题面: ...Once upon a time a man came to the sea. The sea was stormy and dark. The man started to ...
- A - Cthulhu CodeForces - 103B (并查集)
-Once upon a time a man came to the sea. The sea was stormy and dark. The man started to call for th ...
- 氰化物工作室的游戏Cthulhu,或最终获得VR支持
在2017年E3的闭门会议中,记者们看到了氰化物工作室的"Cthulhu".这款游戏充分地融入了它的洛夫洛根的根基,给玩家一个探索神秘的机会,而这个神秘的结局可能会让他们彻底发疯. ...
- 【CodeForces】CF103B Cthulhu
题目地址: https://www.luogu.com.cn/problem/CF103B 题面翻译: 很久很久以前的一天,一位美男子来到海边,海上狂风大作.美男子希望在海中找到美人鱼,但是很不幸他只 ...
- CodeForces 103B Cthulhu
http://codeforces.com/problemset/problem/103/B 找环,一个环 #include<bits/stdc++.h> using namespace ...
- A - Cthulhu
点击打开链接 题目意思就是有一个至少三个点的环,环上的每个点可以延展出去,构成树,但是不能再构成环 1.并查集 #include <iostream> #include <stdio ...
- codeforces-103B Cthulhu
链接:http://codeforces.com/problemset/problem/103/B 题意:给定一个图,判断该图是否由若干棵树的树根构成一个环 题解:先并查集判连通,并且满足n=m #i ...
- codeforces Cthulhu 简单图论
题意:给定一个点集,和边集,问这个它的结构是不是像妖怪. 做法:水,只要DFS判断是否只有一个联通分量,然后再判断N=M即可 #include <iostream> #include &l ...
最新文章
- 浅谈权限设计(来自深空老大)
- java操作XML文件--读取内容
- PHP密码生成管理源码,php密码生成类(附源码)
- nginx做服务器入口_Nginx实现http反向代理
- 5g的负面影响_设计系统的实施是否会对早期概念产生负面影响?
- python自带的shell、其性能优于ipython_python3.4 shell
- OpenCV辅助对象(help objects)(3)——Ptr
- 简易新闻客户端android
- css文件内容的组织
- 2.GitLab 项目管理
- 【hdu2588】求[1-n]中和n的gcd大于m的数的个数(求欧拉函数值)
- 飞机大战游戏源html代码,HTML5全民飞机大战游戏代码
- 卷积神经网络(CNN)详解
- 百度数据可视化Sugar BI — 数据监控与预警(附保姆级教程)
- 小和尚打水问题_老和尚和小和尚打水问题
- 中央C-高低音谱号里的中央C和其它音节
- 计算机无法正常更新,无法完成更新正在撤销更改请不要关闭你的计算机的解决方法...
- silverlight,WPF动画终极攻略之会飞的小鸟篇(Blend 4开发)
- 甲午海战北洋水师战败的战术分析
- 在mac上安装md5命令
热门文章
- IDEA代码抽取为方法快捷键
- 《C#零基础入门之百识百例》(九十一)预处理器指令 -- 代码示例
- The type okio.ByteString cannot be resolved. It is indirectly referenced from required .class files
- sublime text3--制作网页常用插件
- iphone和ipad设备分辨率
- 在css中设置font-family:微软雅黑却不生效问题
- Caffe版Faster R-CNN可视化——网络模型,图像特征,Loss图,PR曲线
- chrony+gpsd部署pps校时
- 小学 计算机阅卷,小学生考试也使用网上阅卷了,公平吗?
- 【宝塔】【Windows】【Blessing-Skin】【我的世界】用宝塔Windows搭建皮肤站