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. 20145332卢鑫 MSF基础应用

    20145332卢鑫 MSF基础应用 实验过程 靶机的IP地址:192.168.10.160 Kali的IP地址:192.168.10.128 1.一个主动攻击 攻击XP系统的漏洞:ms08_067 ...

  2. win10 系统变量迁移

    经常要重装电脑,自己的很多配置都要重新手动配置,其中就包括系统变量 系统变量在注册表中存在 win+R regedit HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\ ...

  3. Unity 之 图片显示的真实大小

    图片放入Unity中自身的属性 在做帽子游戏的时候,看到这么一段代码 //获取保龄球的自身宽度 float ballWidth=ball.GetComponent<Renderer>(). ...

  4. [Pytorch]Pytorch中图像的基本操作(TenCrop)

    转自:https://www.jianshu.com/p/73686691cf13 下面是几种常写的方式 第一种方式 normalize = transforms.Normalize([0.485, ...

  5. C# 新Form各事件执行顺序

    1. 构造函数 2. Load() 3. Show() 4. Acticated()

  6. python工具

    目录 Python工具 1. argparse 2. tqdm 3. os, shutil 4. csv Python工具 1. argparse import argparse parser = a ...

  7. 基于Java的三种对象持久化方式

    1:序列化技术: 序列化的过程就是将对象写入字节流和从字节流中读取对象.将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,可以通过管道或线程读取,或通过网络连接将对象 ...

  8. 未能加载文件或程序集“Newtonsoft.Json, Version=4.5.0.0

    错误描述: 错误原因: 因为引用出了问题,在你的程序集里面找不到的Newtonsoft.Json,所以它就拿从系统盘里面预装的旧版的来用,结果就报版本错误了. 解决方案: web.config  的  ...

  9. [原][库][c++]tinyxml使用小结

    参考:http://blog.csdn.net/L_Andy/article/details/40615517 tinyxml官网: http://www.grinninglizard.com/tin ...

  10. Codeforces 559B - Equivalent Strings

    559B - Equivalent Strings 思路:字符串处理,分治 不要用substr(),会超时 AC代码: #include<bits/stdc++.h> #include&l ...