HDU 4337 King Arthur's Knights——回溯法
来源:互联网 发布:python开发网站实例 编辑:程序博客网 时间:2024/04/28 22:22
题目链接点击打开链接
此题我用dfs回溯,百度到有更牛逼的算法,鉴于水平不行,还是用会的dfs吧……做题
有几个失误,导致一直得不到结果
1.变量i被我声明成了全局变量……所以在回溯时,i的值变了……
2.判断语句是 if(rela[a[cur-1]][i]&&!vis[i]) 而不是 if(rela[cur-1][i]&&!vis[i])……
或者将dfs声明为dfs(int x,int cur) x记录a[cur-1],cur记录当前到了第几个数。
3.最终cur=n+1。
4.最后一个空格不要输出,否则会错……
AC代码
#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<cmath>#include<algorithm>#include<iomanip>#include<stdlib.h>#include<set>#include<map>#include<queue>using namespace std;int a[1000],rela[1000][1000],vis[1000];int n,m,flag=0;void dfs(int cur){ if(flag) return ; if(rela[1][a[n]]&&cur==n+1) { for(int i=1; i<=n; i++) { cout<<a[i]; i==n? cout<<endl:cout<<" "; } flag=1; } else { for(int i=2; i<=n; i++) { if(rela[a[cur-1]][i]&&!vis[i]) { a[cur]=i; vis[i]=1; dfs(cur+1); vis[i]=0; } } }}int main(){ while(cin>>n>>m) { memset(vis,0,sizeof(vis)); memset(rela,0,sizeof(rela)); for(int i=0; i<m; i++) { int a,b; cin>>a>>b; rela[a][b]=1; rela[b][a]=1; } flag=0; a[1]=1; dfs(2); if(flag==0) cout<<"no solution\n"; } return 0;}
0 0
- HDU 4337 King Arthur's Knights——回溯法
- hdu 4337 King Arthur's Knights#DFS
- hdu 4337 King Arthur's Knights
- hdu4337 King Arthur's Knights(dfs回溯)
- hdu - 4337 - King Arthur's Knights - 哈密顿回路
- HDU 4337 King Arthur's Knights(暴力dfs)
- hdu 4337 King Arthur's Knights(dfs)
- HDU 4337 King Arthur's Knights (图论+dfs) = =
- King Arthur's Knights hdu 4337 汉密尔顿图(模板)
- HDU 4337 King Arthur's Knights 【哈密顿模板题】
- King Arthur's Knights —— 结题报告!
- hdu4337 King Arthur's Knights
- hdu4337 King Arthur's Knights
- HDU 4337 King Arthur's Knights 稠密图构造汉密尔顿回路
- HDU 4337 King Arthur's Knights(…
- hdu 4337 King Arthur's Knights(哈密顿回路,4级)
- HDU 4337 King Arthur's Knights 输出一条哈密顿回路
- HDU4337 King Arthur's Knights【哈密顿回路】
- HDU1711_Number Sequence(KMP)
- ios 时间格式化
- 罗永浩 锤子手机发布会
- 获取系统当前时间
- UIImageView响应点击事件
- HDU 4337 King Arthur's Knights——回溯法
- 昆明隆胸秘籍女性丰胸最快方法_昆明武警整形
- 昆明隆胸公立医院好不好_昆明武警整形
- 如何使用jetty
- Ubuntu/Linux 基本命令入门篇
- 【android】Android 破解实例(二)
- iOS—CABasicAnimation的基本使用方法
- POJ 3258 River Hopscotch
- MINA2.0用户手册中文版--第一章 MINA2.0入门