题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5424

官方题解:

如果图是联通的,可以发现如果存在哈密顿路径,一定有一条哈密顿路径的一端是度数最小的点,从哪个点开始直接DFS搜索哈密顿路径复杂度是 O(n) 的。要注意先判掉图不连通的情况。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<vector>
using namespace std;const int maxn = 1005;
int n,flag,mat[maxn][maxn],degree[maxn];
bool vis[maxn];void dfs(int u,int depth)
{if(flag) return;vis[u] = true;if(depth == n){flag = 1;return;}for(int i = 1; i <= n && !flag; i++){if(vis[i] == true || mat[u][i] == 0) continue;dfs(i,depth+1);vis[i] = false; //必须要消除标记,不能一条路走到死}
}int main()
{int u,v;while(scanf("%d",&n)!=EOF){memset(mat,0,sizeof(mat));memset(degree,0,sizeof(degree));for(int i = 1; i <= n; i++){scanf("%d%d",&u,&v);if(u != v && mat[u][v] == 0){mat[u][v] = mat[v][u] = 1;degree[u]++; degree[v]++;}}memset(vis,false,sizeof(vis));int tot = 0,rt = 1;for(int i = 1; i <= n; i++)if(degree[i] == 1){tot++;rt = i;}if(tot > 2) //需要特判一下,否则TLE{printf("NO\n");continue;}flag = 0;dfs(rt,1);if(flag == 1) printf("YES\n");else printf("NO\n");}return 0;
}

hdu 5424(dfs搜索)相关推荐

  1. C语言过河问题主函数,c,c++_C语言踩石头过河问题,用DFS搜索递归了17万次但是没报错,请问是什么原因?,c,c++,算法 - phpStudy...

    C语言踩石头过河问题,用DFS搜索递归了17万次但是没报错,请问是什么原因? 这是原题目,后面附上我的代码,刚刚接触DFS,不是很熟练,求教育--谢谢!!!TUT 这是题目,我大概概括一下 用'※'和 ...

  2. sdut 2152:Balloons(第一届山东省省赛原题,DFS搜索)

    Balloons Time Limit: 1000MS Memory limit: 65536K 题目描述 Both Saya and Kudo like balloons. One day, the ...

  3. nyist oj 19 擅长排列的小明(dfs搜索+STL)

    擅长排列的小明 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描写叙述 小明十分聪明.并且十分擅长排列计算.比方给小明一个数字5,他能立马给出1-5按字典序的全排列,假设你想 ...

  4. 蓝桥杯dfs搜索专题

    2018激光样式 #include<bits/stdc++.h> using namespace std;/* dfs(i) 第i个激光机器 有两种选择:vis[i-1] == 0 时 可 ...

  5. DFS搜索和输出所有路径

    文章目录 1.DFS搜所有路径 2.用栈记录和输出路径 3.例题 3.1 C++代码 3.2 Python代码 4.真题 4.1 C++代码 4.2 Python代码   2022.12将出版蓝桥杯大 ...

  6. nyist 27 水池数目(dfs搜索)

     水池数目 时间限制: 3000 ms  |  内存限制: 65535 KB 难度: 4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图 ...

  7. 蓝桥杯 漏掉的账目明细 DFS搜索 数据处理

    某财务部门结账时发现总金额不对头.很可能是从明细上漏掉了某1笔或几笔.如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗? 如果有多种可能,则输出所有可能的情况. 我们规定:用户输入的第一行是 ...

  8. bfs dfs 搜索入门模板题

    bfs & dfs 题目链接:https://vjudge.net/contest/404511 1.最短路(bfs) (1)一维最短路 D - Catch That Cow 题目大意: 在一 ...

  9. 蓝桥杯 排列数(DFS搜索)

    算法提高 排列数   时间限制:1.0s   内存限制:256.0MB      问题描述 0.1.2三个数字的全排列有六种,按照字母序排列如下: 012.021.102.120.201.210 输入 ...

最新文章

  1. win7系统下访问网上邻居提示用户名密码错误
  2. Leetcode 844. 比较含退格的字符串 解题思路及C++实现
  3. 序列密码体制——密码学笔记(三)
  4. qtgl 鼠标平移 c++_罗技真爱粉的MX Master 3无线鼠标体验
  5. FTP/文件传输协议
  6. jq移除一条html语句,jquery html()删除脚本标签
  7. ZStack实践汇 | 高效开发测试打造产品化私有云
  8. sizeof计算结构体时的内存对齐问题
  9. MicroMsg.SDK.WXMsgImplComm: ignore wechat app signature validation
  10. AI+护肤领域带来的产业价值
  11. php 数字上下选取,选择性粘贴数值快捷键是什么
  12. 冬瓜哥原创装b文 :《觉醒》
  13. 【python】图片处理_分割图片
  14. 中断上下文以及下文延后执行
  15. android里qq登录界面,Android仿QQ登陆窗口实现原理
  16. Java笔记总结(一)
  17. php gbk 拼音,php 基于gbk和 Ascii把汉字转换为拼音
  18. CSS实现强制不换行、自动换行、强制换行的css代码
  19. 张勋说:简述球磨机内介质(钢球|钢棒|衬板)运动动力学(图文)
  20. 触目惊心的股市圈钱骗局:阴谋

热门文章

  1. 心动警告!你有一份礼包待领取→
  2. 万豪旅享家官方商城携手神策数据,数字化礼遇更高质量的用户体验
  3. 70 周岁快乐 | 盛世华诞,每一刻都值得铭记
  4. 小程序如何把文字玩出花样
  5. Ubuntu下ICE-3.4.2的安装
  6. shell脚本游戏之:剪刀石头布
  7. Linux系统的中断、系统调用和调度概述【转】
  8. Nginx源码分析(3)
  9. CSS学习笔记(十四) 我们前端是怎么跟设计师沟通的
  10. Marshal类的简单使用