PAT甲级1122 Hamiltonian Cycle:[C++题解] 图论、模拟
文章目录
- 题目分析
- 题目链接
题目分析
分析
哈密顿回路:从1个点出发,经过所有点一次,然后回到起点。
四个特点: 1)回路必须包含n+1个点;2)回路是个环,第一点和最后一个点相等;3)回路中相邻两个点之间都有边;4)原来的每个点都走到。
ac代码
#include<bits/stdc++.h>
using namespace std;
const int N = 210;int n, m;
bool g[N][N],st[N];
int nodes[N*2];//判断是否是哈密顿回路
bool check(int cnt){if(nodes[0] != nodes[cnt-1] || cnt != n+1) return false;memset(st, 0 ,sizeof st);for(int i = 0; i< cnt -1; i++){st[nodes[i]] =true;if(!g[nodes[i]][nodes[i+1]]) //相邻两个点必须有边return false;}for(int i=1 ;i<=n; i++) //每个点都走到if(!st[i]) return false;return true;
}int main(){cin >> n >> m;while(m--){int a, b;cin >> a >> b;g[a][b] = g[b][a] =true;}int k ;cin >> k;while(k--){int cnt;cin >> cnt;for(int i=0 ;i< cnt; i++) cin>> nodes[i]; //读入回路的点if(check(cnt)) cout<<"YES"<<endl;else cout<<"NO"<<endl;}
}
题目链接
PAT甲级1122 Hamiltonian Cycle
https://www.acwing.com/problem/content/1617/
PAT甲级1122 Hamiltonian Cycle:[C++题解] 图论、模拟相关推荐
- PAT甲级题目翻译+答案 AcWing(图论)
1003 Emergency (25 分) 题意 :求无向图中最短路的数量,以及在最短路情况下,点权之和最大是多少 思路 :dijkstra的扩展一般在第三步"用t更新其它点":s ...
- PAT甲级1029 Median:[C++题解]贪心、二路归并
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 如果直接排序,时间复杂度是O(nlogn),n=2∗105O(nlogn),\ n=2*10^5O(nlogn), n=2∗105会 ...
- PAT甲级1070 Mooncake:[C++题解]贪心
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 对单件从高到低排序. 需要注意的是总需要量d设成double,不要设成int. ac代码 #include<bits/stdc ...
- PAT甲级1008 Elevator:[C++题解]模拟
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:统计上升次数.下降次数:停留次数就是n.然后算数即可. ac代码 #include<bits/stdc++.h> usin ...
- PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 读入n个字符串s[n],以s[0]为基础找公共后缀.枚举后缀的长度,内层循环遍历其他字符串,判断是否后缀相等. 使用子串的函数sub ...
- PAT甲级1078 Hashing:[C++题解]哈希表、哈希表开放寻址法、二次探测法
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析: 本题建立hash表是利用只具有正增量的二次探测法来解决冲突, 索引 = 数 % 哈希表的大小 如果映射到同一个索引idx,hash表 ...
- PAT甲级1003 Emergency:[C++题解]dijkstra求最短路、最短路条数
文章目录 题目分析 题目链接 题目分析 分析:求单源最短路,使用dijkstra()算法. 最短路的条数,和最短路中 人数最多的一条,输出最多人数. 本题点比较少,使用邻接矩阵d[N][N]来存. a ...
- PAT甲级1032 Sharing :[C++题解]链表
文章目录 题目分析 题目链接 题目分析 思路:建立链表,这里使用数组.e [ ] 表示当前的数值,ne[ ]表示next指针. 求单词的公共后缀,就是求两个链表从头结点开始第一个公共的结点. 先遍历第 ...
- PAT甲级1010 Radix :[C++题解]进制位、秦九韶算法、二分(PAT通过率最低的一道题0.11)
文章目录 题目分析 题目链接 题目分析 分析: 本题思路分两步. 第一步:先把给出数值和进制的数,暂定为N1,转换成10进制,即为target. 第二步: 判断一下N2在多少进制下是等于target的 ...
最新文章
- sqlserver清除日志
- JAVA中对日期格式的处理
- 【机器学习】三层神经网络
- 被遗忘和庸俗化的弗洛伊德:纪念弗洛伊德诞辰150周年(全文)
- AsyncTask与多任务
- linux optimizer,linux命令1—安装optimizer(示例代码)
- php中使用httpclient
- 电脑显示器不亮主机正常_电脑主机已开机 显示屏却不亮(看完秒懂)
- 不写一行代码,基于Jmeter打造性能测试数据平台
- 计算机表格怎么加减乘除,如何在Word表格中进行加减乘除
- mongo按季度统计_2020年第一季度电网工程设备材料信息价(完整版)
- 卓有成效的管理者——彼得·德鲁克
- ET Reporter
- [数字疾控]-从业人员健康体检管理系统
- Matlab coder生成C++代码
- 16.Linux环境搭建虚拟网络
- python之selenium爬取数据(爬取airbnb房源信息)
- 家用计算机的运行速度,家里电脑又卡又慢!如何提高电脑运行速度?
- RTX3090 GPU环境配置
- Java如何找出数组中前k个高频元素
热门文章
- 模拟操作系统动态内存管理(c实现)
- django-admin.py 不是内部或外部命令
- 如何用CMD开启3389与查看3389端口
- Server Error in '/' Application. 报错
- (学)DEV在设计界面部分组件显示红叉并报错的问题
- SQL Server R2 地图报表制作(四)
- [原]Oracle数据文件损坏的模拟和修复(一) |ORA-01578 data block corrupted|
- 列举ospf的5种报文类型_9种语言的应用场景,程序员的候选清单,你最看好哪一门语言...
- 以太网与802.3,wifi与802.11的关系
- elasticsearch 6.6 安装(CentOS 7.5) 修订