欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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;
}
相关标签: pat hash