POJ 2488 DFS
DES:给一个n行m列的棋盘。马以L型走。问能否从某一位置开始走完棋盘上的每个位置。若能继续输出字典序最小的一条路径。
很典型的dfs。搜的时候就按照字典序从小到大的顺序。搜到第一条路径时停止搜索输出路经就好了。感觉dfs很机智。WA了几次都是因为保存答案那里没有回溯。。。。。。。。。。一开始还以为没搞清楚行和列哪个是用字母表示的.....T_T ....读题很难的.....
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std; bool flag;
int vis[][];
int x[], y[];
int n, m;
int dx[] = { -, , -, , -, , -, },
dy[] = { -, -, -, -, , , , }; //注意顺序
int cnt; void dfs(int xxx, int yyy)
{
if (flag == false) return;
if (cnt == n*m)
{
for (int i=; i<cnt; ++i)
{
cout << char(y[i]+'A') << char(x[i]+'');
}
cout << endl << endl;
flag = false;
return;
} for (int i=; i<; ++i)
{
int xx = xxx+dx[i];
int yy = yyy+dy[i];
if (xx>= && xx<n && yy>= && yy<m && !vis[xx][yy])
{
vis[xx][yy] = ;
x[cnt] = xx;
y[cnt++] = yy;
dfs(xx, yy);
cnt--;
vis[xx][yy] = ;
}
}
} /*void dfs2(int xxx, int yyy, int num)
{
if (flag == false) return;
if (num == n*m)
{
for (int i=0; i<cnt; ++i)
{
cout << char(y[i]+'A') << char(x[i]+'1');
}
cout << endl << endl;
flag = false;
return;
} for (int i=0; i<8; ++i)
{
int xx = xxx+dx[i];
int yy = yyy+dy[i];
if (xx>=0 && xx<n && yy>=0 && yy<m && !vis[xx][yy])
{
vis[xx][yy] = 1;
x[num] = xx;
y[num] = yy;
dfs2(xx, yy, num+1);
vis[xx][yy] = 0;
}
}
}*/ int main()
{
int t;
cin >> t;
int casee = ;
while(t--)
{
casee++;
cin >> n >> m;
flag = true;
cout << "Scenario #" << casee << ':' << endl;
for (int j=; j<m; ++j)
{
for (int i=; i<n; ++i)
{
memset(vis, , sizeof(vis));
memset(x, , sizeof(x));
memset(y, , sizeof(y));
vis[i][j] = ;
x[] = i;
y[] = j;
cnt = ;
dfs(i, j);
//dfs2(i, j, 1);
if (!flag) break;
}
if (!flag) break;
}
if (flag)
cout << "impossible\n\n";
}
return ;
}
POJ 2488 DFS的更多相关文章
- POJ 2488 -- A Knight's Journey(骑士游历)
POJ 2488 -- A Knight's Journey(骑士游历) 题意: 给出一个国际棋盘的大小,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径. 经典的“骑士游历”问题 ...
- poj 2488 A Knight's Journey( dfs )
题目:http://poj.org/problem?id=2488 题意: 给出一个国际棋盘的大小,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径. #include <io ...
- poj 2488 A Knight's Journey 【骑士周游 dfs + 记忆路径】
题目地址:http://poj.org/problem?id=2488 Sample Input 3 1 1 2 3 4 3 Sample Output Scenario #1: A1 Scenari ...
- POJ 2488 A Knight's Journey【DFS】
补个很久之前的题解.... 题目链接: http://poj.org/problem?id=2488 题意: 马走"日"字,让你为他设计一条道路,走遍所有格,并输出字典序最小的一条 ...
- poj 2488 A Knight's Journey(dfs+字典序路径输出)
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj.org/problem? id=2488 ----- ...
- POJ 2488 A Knight's Journey (回溯法 | DFS)
题目链接:http://poj.org/problem?id=2488 题意: 在国际象棋的题盘上有一个骑士,骑士只能走“日”,即站在某一个位置,它可以往周围八个满足条件的格子上跳跃,现在给你一个p ...
- POJ 2488 A Knight's Journey(DFS)
A Knight's Journey Time Limit: 1000MSMemory Limit: 65536K Total Submissions: 34633Accepted: 11815 De ...
- [poj]2488 A Knight's Journey dfs+路径打印
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 45941 Accepted: 15637 Description Bac ...
- 搜索 || DFS || POJ 2488 A Knight's Journey
给一个矩形棋盘,每次走日字,问能否不重复的走完棋盘的每个点,并将路径按字典序输出 *解法:按字典序输出路径,因此方向向量的数组按字典序写顺序,dfs+回溯,注意flag退出递归的判断,并且用pre记录 ...
随机推荐
- 20145221《网络对抗》PC平台逆向破解
20145221<网络对抗>PC平台逆向破解 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户 ...
- python_实现发送邮件功能
#!/usr/bin/env python #-*- coding:utf-8 -*- from email import encoders from email.header import Head ...
- HDU1560 DNA sequence(IDA*)题解
DNA sequence Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- Java8新特性:Function接口和Lambda表达式参考
Lambda基本:https://blog.csdn.net/wargon/article/details/80656575 https://www.cnblogs.com/hyyq/p/742566 ...
- centos7下yum升级被PackageKit锁定
新安装centos7后,第一次升级出现下面的错误: Another app is currently holding the yum lock; waiting for it to exit... 另 ...
- window 环境下jdbc访问启用kerberos的impala
最近,公司生产集群添加kerberos安全认证后,访问集群的任何组件都需要进行认证,这样问题来了,对于impala,未配置kerberos安全认证之前通过impala的jdbc驱动(impala-jd ...
- Mask R-CNN论文理解
摘要: Mask RCNN可以看做是一个通用实例分割架构. Mask RCNN以Faster RCNN原型,增加了一个分支用于分割任务. Mask RCNN比Faster RCNN速度慢一些,达到了5 ...
- Android网络多线程断点续传下载
本示例介绍在Android平台下通过HTTP协议实现断点续传下载. 我们编写的是Andorid的HTTP协议多线程断点下载应用程序.直接使用单线程下载HTTP文件对我们来说是一件非常简单的事.那么,多 ...
- Log4J日志配置详解[转]
一.Log4j简介 Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局).这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出.综合使 ...
- asp.net Core MVC + form validation + ajax form 笔记
asp.net Core MVC 有特别处理form,controller可以自己处理model的验证,最大的优势是写form时可以少写代码 先了解tag helper ,这东西就是element上的 ...