1122 Hamiltonian Cycle (25 point(s))没拿满分,应该是忽略了某些情况
程序员文章站
2022-01-21 19:02:38
...
#include<bits/stdc++.h>
using namespace std;
int G[200][200];
int main(){
int v,m;
cin>>v>>m;
for(int i=0;i<m;i++){
int t1,t2;
cin>>t1>>t2;
G[t1][t2]=G[t2][t1]=1;
}
int k,num;
cin>>k;
for(int i=0;i<k;i++){
int hash1[200]={0};
int queryline[200]={0};
cin>>num;
for(int j=0;j<num;j++){
cin>>queryline[j];
}
if(queryline[0]!=queryline[num-1]||num!=v+1)
{
cout<<"NO"<<endl;
continue;
}
else{
int j=1;
hash1[queryline[0]]=1;
for(;j<v;j++){
hash1[queryline[j]]++;
if(hash1[queryline[j]]>1){
cout<<"NO"<<endl;
break;
}
if(G[queryline[j-1]][queryline[j]]!=1){
cout<<"NO"<<endl;
break;
}
}
if(j==v)
cout<<"YES"<<endl;
}
}
return 0;
}