HDU5424Rikka with Graph II(哈密顿图判断)
来源:互联网 发布:自定义表单数据库设计 编辑:程序博客网 时间:2024/06/05 05:21
题目链接:传送门
分析(转自bestcoder):
如果图是联通的,可以发现如果存在哈密顿路径,一定有一条哈密顿路径的一端是度数最小的点,从哪个点开始直接DFS搜索哈密顿路径复杂度是 O(n)的。要注意先判掉图不连通的情况。
代码如下:
#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>#include <vector>using namespace std;const int maxn = 1e3+10;int degree[maxn];bool vis[maxn];vector<int >vc[maxn];void init(){ for(int i=0;i<maxn;i++){ degree[i]=0; vc[i].clear(); vis[i]=0; }}int mp[maxn][maxn];int n;void dfs1(int u,int &num){ num++; vis[u]=1; for(int i=0;i<vc[u].size();i++){ int v = vc[u][i]; if(!vis[v]) dfs1(v,num); }}bool dfs2(int u,int pre,int num){ vis[u]=1; num++; if(num==n) return 1; for(int i=0;i<vc[u].size();i++){ int v = vc[u][i]; if(v!=pre&&!vis[v]){ if(dfs2(v,u,num)) return 1; } } vis[u]=0; return 0;}int main(){ while(~scanf("%d",&n)){ init(); memset(mp,0,sizeof(mp)); for(int i=0;i<n;i++){ int u,v; scanf("%d%d",&u,&v); if(u==v||mp[u][v]) continue; vc[u].push_back(v); vc[v].push_back(u); mp[u][v]=1; mp[v][u]=1; degree[u]++; degree[v]++; } int num=0; dfs1(1,num); if(num!=n){ puts("NO"); continue; } int st=1,d=10000000; for(int i=1;i<=n;i++){ if(degree[i]<d) st=i,d=degree[i]; } memset(vis,0,sizeof(vis)); if(dfs2(st,0,0)) puts("YES"); else puts("NO"); } return 0;}
0 0
- HDU5424Rikka with Graph II(哈密顿图判断)
- BestCoder Round #53 (div.2) HDOJ5424 Rikka with Graph II(dfs & 哈密顿通路判断)
- hdu 5424 Rikka with Graph II (哈密顿路判定)
- hdu 5424 Rikka with Graph II 哈密顿通路
- hdu 5424 Rikka with Graph II(哈密顿路判定)
- hdu5424 Rikka with Graph II(n个点n条边的图判哈密顿通路)
- hdu 5424 Rikka with Graph II 判n点n边的图是否为哈密顿通路
- BestCoder Round #53 (div.2)1003 Rikka with Graph II 哈密顿路径 dfs
- HDU 5424 Rikka with Graph II 哈密顿路径+dfs找环
- hdoj 3435 A new Graph Game 【无向图判断权值最小哈密顿环】【KM算法】
- 欧拉图,哈密顿图
- poj2438 哈密顿图
- 哈密顿图
- 哈密顿图
- hdu2181 哈密顿绕行世界问题 哈密顿图。。水题
- 欧拉图和哈密顿图
- poj2438构造哈密顿图
- poj2438(哈密顿图)
- NSURLConnection怎么把http改为https
- xmu 1018 零零漆的作
- epoll源码实现分析[整理]
- mysql索引详解(转)
- js获取表单值的两种方法
- HDU5424Rikka with Graph II(哈密顿图判断)
- Linux下nc的参数详解
- 惠普体验
- 求n!中含有某个因子个数的方法
- 2015-08-30-Mac下配置ssh访问远程私有git服务器
- 腾讯的一个试题---36辆赛车,6个跑道,最少比赛次数,取得前三名
- Bootstrap下载与使用
- jQuery实现CheckBox全选、全不选
- JDK安装及环境变量配置