7-98 汉密尔顿回路 (25分)

在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;
int n,m,k,g[210][210];
bool vis[210];
int main()
{
	cin>>n>>m;
	for(int i=0;i<m;i++)
	{
		int a,b;
		cin>>a>>b;
		g[a][b]=g[b][a]=1;
	}
	cin>>k;
	for(int i=0;i<k;i++)
	{
		int x,y,flag=1,begin;
		memset(vis,0,sizeof vis);
		cin>>m>>begin;
		if(m!=n+1)	flag=0;
		x=begin;
		while(--m)
		{
			cin>>y;
			if(!g[x][y]||vis[y])	flag=0;
			vis[y]=1;
			x=y;
		}
		if(flag&&begin==y)	cout<<"YES"<<endl;
		else	cout<<"NO"<<endl;
	}
}
发布了180 篇原创文章 · 获赞 22 · 访问量 9015

猜你喜欢

转载自blog.csdn.net/qq_44622401/article/details/104266370