zoukankan      html  css  js  c++  java
  • 【PAT甲级】1122 Hamiltonian Cycle (25分)

    题意:

    输入一个正整数N(2<N<=200),表示结点个数,接着输入一个正整数M。输入M条有向边,输入一个正整数K,接着输入K次询问,每次询问包含一个圆环点总数,以及若干点。输出是否这些点构成一个环并且所有点都在环内。

    trick:

    数组开200或者300都会在最后一个测试点段错误。

    AAAAAccepted code:

     1 #define HAVE_STRUCT_TIMESPEC
     2 #include<bits/stdc++.h>
     3 using namespace std;
     4 set<int>v[407];
     5 int a[407];
     6 int vis[407];
     7 int main(){
     8     ios::sync_with_stdio(false);
     9     cin.tie(NULL);
    10     cout.tie(NULL);
    11     int n,m;
    12     cin>>n>>m;
    13     for(int i=1;i<=m;++i){
    14         int x,y;
    15         cin>>x>>y;
    16         v[x].insert(y);
    17         v[y].insert(x);
    18     }
    19     int k;
    20     cin>>k;
    21     for(int i=1;i<=k;++i){
    22         memset(vis,0,sizeof vis);
    23         int x;
    24         cin>>x;
    25         for(int j=1;j<=x;++j)
    26             cin>>a[j];
    27         int flag=0;
    28         if(a[x]!=a[1])
    29             flag=1;
    30         if(x!=1+n)
    31             flag=1;
    32         for(int j=2;j<=x;++j){
    33             if(!v[a[j-1]].count(a[j]))
    34                 flag=1;
    35             if(vis[a[j-1]]&&j<x)
    36                 flag=1;
    37             vis[a[j-1]]=1;
    38         }
    39         if(flag)
    40             cout<<"NO";
    41         else
    42             cout<<"YES";
    43         if(i<k)
    44             cout<<"
    ";
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    面试题
    ajax部分
    jquery部分
    javascript部分
    webpack入门
    jQuery 实现下载进度条
    webSocket入门
    Ajax实现下载进度条
    C# IDisposable接口
    nuget必备插件(待续)
  • 原文地址:https://www.cnblogs.com/ldudxy/p/12400394.html
Copyright © 2011-2022 走看看