A1122
Description:
给出图中所有边的端点信息,再给出一些查询,请问这些查询的路径是否为哈密顿回路(由指定的起点前往指定的终点,起点和终点相同,途中经过所有其他节点且只经过一次。)
思路:
- 二维数组存放两个点是否有路径,注意无向图双向映射;
- 对于所给查询,满足以下条件之一的,非哈密顿回路,写好if-else判断即可:
- 路径节点数!=总数+1(首尾相同),则非哈密顿回路;
- 路径首尾不相同;
- 路径途中存在无路径的两节点;
- 重复访问了某一节点
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<map>
#include<vector>
#include<queue>
using namespace std;
const int maxn = 205;
bool mp[maxn][maxn], vis[maxn];
int n, m;
int main()