1122 Hamiltonian Cycle
题意:包含图中所有结点的简单环称为汉密尔顿环。给出无向图,然后给出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的更多相关文章
- 1122 Hamiltonian Cycle (25 分)
1122 Hamiltonian Cycle (25 分) The "Hamilton cycle problem" is to find a simple cycle that ...
- PAT甲级 1122. Hamiltonian Cycle (25)
1122. Hamiltonian Cycle (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The ...
- PAT 1122 Hamiltonian Cycle[比较一般]
1122 Hamiltonian Cycle (25 分) The "Hamilton cycle problem" is to find a simple cycle that ...
- 1122 Hamiltonian Cycle (25 分)
1122 Hamiltonian Cycle (25 分) The "Hamilton cycle problem" is to find a simple cycle that ...
- PAT 1122 Hamiltonian Cycle
The "Hamilton cycle problem" is to find a simple cycle that contains every vertex in a gra ...
- 1122. Hamiltonian Cycle (25)
The "Hamilton cycle problem" is to find a simple cycle that contains every vertex in a gra ...
- PAT甲题题解-1122. Hamiltonian Cycle (25)-判断路径是否是哈密顿回路
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789799.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- PAT1122: Hamiltonian Cycle
1122. Hamiltonian Cycle (25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The ...
- A1122. Hamiltonian Cycle
The "Hamilton cycle problem" is to find a simple cycle that contains every vertex in a gra ...
随机推荐
- 使用Java代码来创建view
使用Java代码来创建view 一.简介 需要了解的知识 二.方法 1)java代码创建view方法 * 1.先建view对象 View view= View.inflate(this, R.layo ...
- Shell 概述、截取字符操作等
Shell 是用C语言编写的程序,便于用户与Linux内核系统进行交互. Linux的Shell种类众多,常见的有: Bourne Again Shell (/bin/bash) Bourne She ...
- 四十八 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)用Django实现搜索功能
Django实现搜索功能 1.在Django配置搜索结果页的路由映射 """pachong URL Configuration The `urlpatterns` lis ...
- mysql 字段属性 与 排序
mysql中常见的数据类型:varchar(n).float.int(n).bigint(n).date.datetime.text 字段属性 默认值:DEFAULT '默认值' 非空:NOT NUL ...
- 通过使用scrapy爬取某学校全网
通过遍历全网url 实现爬取全网内容 忽略“.doc"等文件网页暂不处理,只爬取整个页面,不做清洗 spider.py # -*- coding: utf-8 -*- import scra ...
- LeetCode OJ:Binary Tree Maximum Path Sum(二叉树最大路径和)
Given a binary tree, find the maximum path sum. For this problem, a path is defined as any sequence ...
- Visual Studio 2013中用VSIX创建项目模版
我会一步一步解释: 我的一个项目里有5个工程, 我想用其中的4个去创建一个新的工具模版,我还想把他们都放到一个文件夹下面当我用这个模版创建新的工程时.注意我的初始化项目,我想把他们转换成一个模版(我不 ...
- S2SH框架中的无刷新验证码功能实现
暑假期间在实验室做使用S2SH框架的项目,其中登录和注册需要验证码,实现了一个没有实现刷新验证码功能的简单版本,代码如下: 1 package com.sem.action; 2 3 import j ...
- 使用 nvm 管理多版本 node
首先,使用下面的命令来安装 nvm $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | b ...
- Android数据库代码优化(2) - 从SQLite说起
从SQLite说起 如果没有SQLite的基础,我们只是从Android封装的SQLite API去学习的话,难免思路会受到限制.所以,我们还是需要老老实实从头开始学习SQLite. 当我们有一身的S ...