烤的感觉不是图。。
分别判断:是否首尾相同,是否路径可走,是否经历n+1个结点,是否都经历过。
#include<bits/stdc++.h>
using namespace std;
bool ll[201][201];
bool tag[201];
int main(){
int n,m;
int a,b;
cin>>n>>m;
for(int i=0;i<m;i++){
cin>>a>>b;
ll[a][b]=true;
ll[b][a]=true;
}
int k;
cin>>k;
for(int i=0;i<k;i++){
int num,temp1,temp2;
bool flag=false;
cin>>num;
if(num!=0){
cin>>temp1;
int first=temp1;
fill(tag,tag+201,false);
tag[temp1]=true;
for(int j=1;j<num;j++){
temp2=temp1;
cin>>temp1;
tag[temp1]=true;
if(ll[temp1][temp2]==false)flag=true;
}
for(int j=1;j<=n;j++)if(tag[j]==false)flag=true;
if(num!=n+1)flag=true;
if(first!=temp1)flag=true;
}
else flag=true;
if(flag)printf("NO\n");
else printf("YES\n");
}
return 0;
}