题意:包含图中所有结点的简单环称为汉密尔顿环。给出无向图,然后给出k个查询,问每个查询是否是汉密尔顿环。

思路:根据题目可知,我们需要判断一下几个条件:(1).首先保证给定的环相邻两结点是连通的;(2).若图结点个数为n,则环的结点个数必须是n+1;(3).环的起点和终点必须相同;(4).除了首尾结点外,其余结点有且仅有出现过一次。

注意点:因为会多次查询,因此记得在每次查询前进行初始化!(这个点经常出错!画时间找这种错误非常浪费!)

代码:

#include <cstdio>
#include <cstring>
;
};
int path[maxn];//存放查询的路径
};//存放路径结点出现的次数

int main()
{int n,m,u,v;
    scanf("%d%d",&n,&m);
    ;i<m;i++){
        scanf("%d%d",&u,&v);
        graph[u][v]=graph[v][u]=;
    }
    int query,k;
    scanf("%d",&query);
    while(query--){
        scanf("%d",&k);
        bool flag=true;
        memset(cnt,,sizeof(cnt));//每次查询前记得初始化!!!!!
        ;i<k;i++){
            scanf("%d",&path[i]);
            cnt[path[i]]++;//统计路径上的结点出现过的次数
        }
        //判断1
         || path[]!=path[k-])  flag=false;
        else{
            //判断2,环是否连通
            ];
            ;i<k;i++){
                ){
                    flag=false;
                    break;
                }
                pre=path[i];
            }
            if(flag){
                //判断3
                ;i<k-;i++){
                    ){
                        flag=false;
                        break;
                    }
                }
            }
        }
        if(flag) printf("YES\n");
        else printf("NO\n");
    }
    ;
}

1122 Hamiltonian Cycle的更多相关文章

  1. 1122 Hamiltonian Cycle (25 分)

    1122 Hamiltonian Cycle (25 分) The "Hamilton cycle problem" is to find a simple cycle that ...

  2. PAT甲级 1122. Hamiltonian Cycle (25)

    1122. Hamiltonian Cycle (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The ...

  3. PAT 1122 Hamiltonian Cycle[比较一般]

    1122 Hamiltonian Cycle (25 分) The "Hamilton cycle problem" is to find a simple cycle that ...

  4. 1122 Hamiltonian Cycle (25 分)

    1122 Hamiltonian Cycle (25 分) The "Hamilton cycle problem" is to find a simple cycle that ...

  5. PAT 1122 Hamiltonian Cycle

    The "Hamilton cycle problem" is to find a simple cycle that contains every vertex in a gra ...

  6. 1122. Hamiltonian Cycle (25)

    The "Hamilton cycle problem" is to find a simple cycle that contains every vertex in a gra ...

  7. PAT甲题题解-1122. Hamiltonian Cycle (25)-判断路径是否是哈密顿回路

    博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789799.html特别不喜欢那些随便转载别人的原创文章又不给 ...

  8. PAT1122: Hamiltonian Cycle

    1122. Hamiltonian Cycle (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The ...

  9. A1122. Hamiltonian Cycle

    The "Hamilton cycle problem" is to find a simple cycle that contains every vertex in a gra ...

随机推荐

  1. LinuxKit

    LinuxKit是Docker最新发布的一个用于为容器构建安全.便携.可移植操作系统的工具包.它根据用户编写的yaml(指定kernel和基于docker image的一些列服务)自动构建一个常见虚拟 ...

  2. c++中的函数对象《未完成》

    头文件: #pragma once #include<iostream> #include<vector> using namespace std; class Student ...

  3. mybatis引入dtd约束

    window->preferences,然后寻找xml catalog,点击add如下所示 将dtd网址复制到key中 key type选择uri,选择dtd的下载路径.

  4. angularjs笔记(1)

    https://github.com/angular/angular.js/blob/master/src/ng/q.js 1.ng-app 指令告诉 AngularJS,<div> 元素 ...

  5. showdoc.js代码

    //页面加载完就执行 $(function(){ //自动根据url把当前菜单激活 var page_id = GetQueryString('page_id'); //如果中没有指定page_id, ...

  6. js 格式化时间日期函数小结2

    方法一: // 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符,  // 年(y)可以用  ...

  7. C#—序列化(Serialize)和反序列化(NonSerialize)

    (转自:http://www.cnblogs.com/Abel-Zhang/p/Serialize.html) 一.概述 序列化是把对象转变成流.相反的过程就是反序列化. 哪些场合用到这项技术呢? 1 ...

  8. Fiddler工作原理与代理设置

    1,什么是Fiddler Fiddler是一个http协议调试代理工具,它能够记录客户端和服务器之间的所有 HTTP请求,可以针对特定的HTTP请求,分析请求数据.设置断点.调试web应用.修改请求的 ...

  9. ROS中使用ABB Yumi IRB14000的一些资料汇总

    目前,ABB RobotStudio 已经更新到6.05.01了,可至官网下载. 使用ABB RobotStudio和ROS进行联合调试,请参考下文: http://blog.csdn.net/Zha ...

  10. xcode加载静态链接库.a文件总是失败

    明明项目是对的,代码没有问题,并且把项目作为库项目引入到新项目中没问题,可是一旦把项目编译出.a文件,引入到新项目中不知为何会有几率出现一大堆错误,其实是xcode的缓存机制在作怪,去这个目录: /U ...