DES:给一个n行m列的棋盘。马以L型走。问能否从某一位置开始走完棋盘上的每个位置。若能继续输出字典序最小的一条路径。

很典型的dfs。搜的时候就按照字典序从小到大的顺序。搜到第一条路径时停止搜索输出路经就好了。感觉dfs很机智。WA了几次都是因为保存答案那里没有回溯。。。。。。。。。。一开始还以为没搞清楚行和列哪个是用字母表示的.....T_T ....读题很难的.....

A Knight's Journey

#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的更多相关文章

  1. POJ 2488 -- A Knight's Journey(骑士游历)

    POJ 2488 -- A Knight's Journey(骑士游历) 题意: 给出一个国际棋盘的大小,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径. 经典的“骑士游历”问题 ...

  2. poj 2488 A Knight's Journey( dfs )

    题目:http://poj.org/problem?id=2488 题意: 给出一个国际棋盘的大小,判断马能否不重复的走过所有格,并记录下其中按字典序排列的第一种路径. #include <io ...

  3. 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 ...

  4. POJ 2488 A Knight's Journey【DFS】

    补个很久之前的题解.... 题目链接: http://poj.org/problem?id=2488 题意: 马走"日"字,让你为他设计一条道路,走遍所有格,并输出字典序最小的一条 ...

  5. poj 2488 A Knight&#39;s Journey(dfs+字典序路径输出)

    转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents 题目链接:http://poj.org/problem? id=2488 ----- ...

  6. POJ 2488 A Knight's Journey (回溯法 | DFS)

    题目链接:http://poj.org/problem?id=2488 题意: 在国际象棋的题盘上有一个骑士,骑士只能走“日”,即站在某一个位置,它可以往周围八个满足条件的格子上跳跃,现在给你一个p ...

  7. POJ 2488 A Knight's Journey(DFS)

    A Knight's Journey Time Limit: 1000MSMemory Limit: 65536K Total Submissions: 34633Accepted: 11815 De ...

  8. [poj]2488 A Knight's Journey dfs+路径打印

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 45941   Accepted: 15637 Description Bac ...

  9. 搜索 || DFS || POJ 2488 A Knight's Journey

    给一个矩形棋盘,每次走日字,问能否不重复的走完棋盘的每个点,并将路径按字典序输出 *解法:按字典序输出路径,因此方向向量的数组按字典序写顺序,dfs+回溯,注意flag退出递归的判断,并且用pre记录 ...

随机推荐

  1. VC中GetLastError()获取错误信息的使用,以及错误代码的含义

    转载:http://www.seacha.com/article.php/knowledge/windows/mfc/2011/0423/335.html VC中GetLastError()获取错误信 ...

  2. Python3基础 try-多个指定except与不指定except 简单示例

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  3. chromedriver下载安装

    博主开发平台是win10,Python版本是3.6.最近需要用到chromedriver+selenium,下载好selenium后,pip install chromedriver,直接安装到pyt ...

  4. js媒体查询设置根字号

    !function(n){var e=n.document,t=e.documentElement,i=750,d=i/50,o="orientationchange"in n?& ...

  5. 【Coursera】Sixth Week(1)

    Transport Layer 在学习完 Link Layer(Ethernet),Internetwork Layer(IP)之后,我们来到了TCP/IP协议簇的上半部分. Review:Magic ...

  6. NOI 8785 装箱问题(0-1背包)

    http://noi.openjudge.cn/ch0206/8785/ 描述 有一个箱子容量为V(正整数,0<=v<=20000),同时有n个物品(0< n<n<=30 ...

  7. 软件测试&安全测试高峰论坛

    Nubia测试以及介绍 基于Cucumber的自动化测试平台 常见Web漏洞之XSS,主要HTML与JS基础.XSS的基础知识与挖掘方法.XSS的利用 自动化测试框架以及测试思路

  8. bash 判断两个文件相等的代码

    #!/bin/bash #定义参数 username="xxx" passwd="xxxxxxxx" dbname="xxx" #判断入参为 ...

  9. xss脚本注入后端的防护

    1.脚本注入最主要的是不要相信用户输入的任何数据,对数据进行转义 可以使用:org.springframework.web.util.HtmlUtils包中的 HtmlUtils.htmlEscape ...

  10. Python 爬虫-正则表达式

    2017-07-27 13:52:08  一.正则表达式的概念 (1)正则表达式是用来简洁表达一组字符串的表达式,最主要应用在字符串匹配中. 正则表达式是用来简洁表达一组字符串的表达式 正则表达式是一 ...