哈密顿回路问题是找到一个包含图中每个顶点的简单回路。

这样的回路称为“哈密顿回路”。

在本题中,你需要做的是判断给定路径是否为哈密顿回路。

输入格式
第一行包含一个整数 NN 表示顶点数,一个整数 MM 表示给定无向图中的边数。

接下来 MM 行,每行包含两个整数 a,ba,b,表示点 aa 和 bb 之间存在一条边。

所有顶点编号从 11 到 NN。

再一行给出整数 KK,表示询问次数。

接下来 KK 行,每行包含一个询问,格式如下:

nn V1V1 V2V2 … VnVn
nn 表示给定路径经过的点的数目,ViVi 是路径中经过的点。

输出格式
对于每个询问,如果是哈密顿回路则在一行输出 YES,否则输出 NO。

数据范围
2<N≤2002<N≤200,
N−1≤M≤N(N−1)2N−1≤M≤N(N−1)2,
1≤K≤10001≤K≤1000,
1≤n≤4101≤n≤410
输入样例:
6 10
6 2
3 4
1 5
2 5
3 1
4 1
1 6
6 3
1 2
4 5
6
7 5 1 4 3 6 2 5
6 5 1 4 3 6 2
9 6 2 1 6 3 4 5 2 6
4 1 2 5 1
7 6 1 3 4 5 2 6
7 6 1 2 5 4 3 1
输出样例:
YES
NO
NO
NO
YES
NO

#include <iostream>
#include <cstring>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;//点的数量必须为n+1memset(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)) puts("YES");else puts("NO");}return 0;
}

PAT甲级真题1122 哈密顿回路(详解)相关推荐

  1. PAT甲级真题 1018 A+B in Hogwarts--python解法

    PAT甲级真题 1018 A+B in Hogwarts 提交:2638 通过:1559 通过率:59% If you are a fan of Harry Potter, you would kno ...

  2. PAT甲级真题目录(按题型整理)(转自柳神)

    转载自:https://www.liuchuo.net/archives/2502?tdsourcetag=s_pcqq_aiomsg 最短路径 1003. Emergency (25)-PAT甲级真 ...

  3. 2022年Java面试总结,200多页真题笔记和详解(核心考点、6家大厂)

    为了进大厂,花了很多时间和精力在面试准备上,也刷了很多题.但题刷多了有点怀疑人生,不知道刷的这些题在之后的工作中能不能用到,如果只是为面试而刷题是不是在浪费人生呢? 如果你想进大厂,或者去一个更大.更 ...

  4. 2022 年 Java 面试总结,200 多页真题笔记和详解(含核心考点及 6 家大厂)

    为了进大厂,花了很多时间和精力在面试准备上,也刷了很多题.但题刷多了有点怀疑人生,不知道刷的这些题在之后的工作中能不能用到,如果只是为面试而刷题是不是在浪费人生呢? 如果你想进大厂,或者去一个更大.更 ...

  5. 2020下半年软件设计师上午真题及答案详解

    2020年下半年软件设计师上午真题及答案解析 1.在程序执行过程中,高速缓存(Cache)与主存间的地址映射由(  ). A.操作系统进行管理      B.存储管理软件进行管理 C.程序员自行安排  ...

  6. PAT甲级真题-1007 Maximum Subsequence Sum详解优化

    1007 Maximum Subsequence Sum 题目链接 https://pintia.cn/problem-sets/994805342720868352/problems/9948055 ...

  7. 【PAT甲级真题整理五】1121~1155

    终于考完了qaq把最后一堆也整理出来了 目录 1121 Damn Single(25)set.map的使用 1122 Hamiltonian Cycle(25)哈密顿回路 1123 Is It a C ...

  8. 1131. Subway Map (30)-PAT甲级真题 (DFS or 堆优化dij or SPFA)

    题意 给出地铁线路数n,分别给出每条线的站点数m,再依次列出站点id.然后询问k次从启点sv到终点ev的最短路径,如果最短路径相同,要求换乘最少的路径.最后按条件输出. 思路 1.用unordered ...

  9. PAT甲级真题 1011 World Cup Betting (20分) C++实现

    题目 With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly exc ...

最新文章

  1. oledb读不到dbf文件内容
  2. 数据集成之主数据管理(一)基础概念篇
  3. 【Android】Android适配器之ArrayAdapter、SimpleAdapter和BaseAdapter的简单用法
  4. hadoop小型集群_小型Hadoop集群的Ganglia配置和一些故障排除
  5. 分布式系统一致性测试框架Jepsen在女娲的实践应用
  6. grub2配置原理分析
  7. Spring @Bean @Scope @Qualifier
  8. viewport理解
  9. 统计学习基础:数据挖掘、推理和预测_百度零基础深度学习笔记(三) 波士顿房价预测...
  10. [经验]修改SDI主窗口Title
  11. ios查看帧率的软件_查看iOS屏幕帧数MGFPSStatus
  12. 数据结构:单链表——带头结点与不带头结点步骤详解
  13. 网络安全ctf比赛/学习资源整理,解题工具、比赛时间、解题思路、实战靶场、学习路线,推荐收藏!...
  14. 【成长经历】----陪女朋友拔智齿
  15. RV-LINK:GDB 使用 RV-LINK 仿真器调试 RISC-V 程序
  16. 对称加密算法AES - ECB模式
  17. Qt扫盲-QSqlQuery理论总结
  18. C语言实战篇-----调试关键参数+printf输出_文件名_函数名_执行数!!!
  19. 将insert语句转化为select语句,进行校验,验证是否插入成功
  20. 视频教程-Oracle数据库从入门到实用教程详解-Oracle

热门文章

  1. 南京大学计算机学院路通,路通(技术学院)老师 - 南京大学 - 院校大全
  2. Kinect结合Unity3D引擎开发体感游戏(一
  3. 3D视图生成器PS插件汉化版 Isometrical-3D View Generator-Photoshop Plugin
  4. 分享一个小清新的论坛源码
  5. 新建vivado工程仿真或修改原仿真代码后,仿真波形不更新问题(已解决)
  6. 图像特效---PS图层混合模式之明度模式
  7. 中英文打字专家 卡巴斯基杀毒软件
  8. Foursquare 4
  9. 内存检测工具Dr.Memory在Windows上的使用
  10. raspberry pi_6个Raspberry Pi教程试用