1122. Hamiltonian Cycle (25)
来源:互联网 发布:最近邻居算法 编辑:程序博客网 时间:2024/04/30 17:23
题目地址
要求给出的路径构成一个简单环(只有一圈),且包含所有结点才满足题目要求。
不满足要求的情况判断:路径不连通不符合要求;路径头尾结点出现次数应为2次,中间的为1次;所有点都必须出现过。
//// Created by aleafall on 16-12-10.//#include <bits/stdc++.h>using namespace std;const int maxn = 205;int g[maxn][maxn] = {0};int vis[maxn] = {0};int n, m, a[maxn];bool check(int cnt) { for (int i = 0; i < cnt; ++i) { if (i < cnt - 1) { if (g[a[i]][a[i + 1]] == 0) { return 0; } } ++vis[a[i]]; } for (int i = 0; i < cnt; ++i) { if (i == 0 || i == cnt - 1) { if (vis[a[i]] != 2) { return 0; } } else { if (vis[a[i]] != 1) { return 0; } } } for (int i = 1; i <= n; ++i) { if (vis[i] == 0) { return 0; } } return 1;}int main() { int k, v1, v2, cnt; cin >> n >> m; for (int i = 0; i < m; ++i) { scanf("%d %d", &v1, &v2); g[v1][v2] = 1; g[v2][v1] = 1; } cin >> k; for (int i = 0; i < k; ++i) { scanf("%d", &cnt); for (int j = 0; j < cnt; ++j) { scanf("%d", &a[j]); } check(cnt) ? printf("YES\n") : printf("NO\n"); fill(vis, vis + maxn, 0); } return 0;}
0 0
- 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)
- PAT--1122. Hamiltonian Cycle (25)
- pat 1122. Hamiltonian Cycle (25)
- PAT-1122. Hamiltonian Cycle (25)
- PAT_A 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)解题报告
- pat甲级 1122. Hamiltonian Cycle (25)
- 1122. Hamiltonian Cycle (25)[图的遍历]
- 1122. Hamiltonian Cycle (25) PAT 甲级
- C 线程与进程的区别与联系
- C++ int 型负数除法与求模运算
- Javascript的事件机制
- 【Webview相关问题】"控制字符"引发的惨案及Base64
- docker下mysql的完整demo
- 1122. Hamiltonian Cycle (25)
- js闭包和循环
- Java 装箱后数字的比较
- 2016年12月11日 神途发布网新服预告
- 一些编译器版本的_MSC_VER值
- 润乾报表中利用API动态设置左表头
- 自定义Dialog
- 彻底删除MySQL的方法
- Scrapy在win10(64位)的安装说明