poj2488骑士之旅
题目大意:国际象棋里面的马,有那么8种跳法,然后题目给出一个棋盘的大小p*q, 求有没有路线可以使得这个马能把整个棋盘的格全部走一遍,有的话按照字典序将第一条路线打印出来。
注意:国际象棋是行是数字,列是字母,按照字典序A1B3....,是需要按照先列后行来处理的。
因为要找一条路径出来,所以考虑深度优先(DFS)
贴一下烂代码(o(╯□╰)o):
#include<iostream>
#include<string>
using namespace std; int chess[][];
int path;
bool exist=;
string rec; void DFS(int y,int x,int szy,int szx)
{
chess[x][y]=;
path++;
rec.push_back(char(y+'A'));
rec.push_back(char(x+''));
//cout<<"Beginning:"<<rec<<endl;
int increx,increy;//,flag=0;
for(int n=;n<;n++)
{
switch(n){
case :
increy=-;increx=-;break;
case :
increy=-;increx=;break;
case :
increy=-;increx=-;break;
case :
increy=-;increx=+;break;
case :
increy=+;increx=-;break;
case :
increy=+;increx=+;break;
case :
increy=+;increx=-;break;
case :
increy=+;increx=+;break;
}
if(y+increy>=szy||y+increy<||x+increx>=szx||x+increx<) continue;
else if(chess[x+increx][y+increy]==)
{
DFS(y+increy,x+increx,szy,szx);
}
} if(path==szy*szx)
{
//cout<<"result:"<<rec<<endl;
exist=;
}
else{
path--;
rec.erase(rec.end()-);
rec.erase(rec.end()-);
//cout<<"Delete:"<<rec<<endl;
chess[x][y]=;
} } int main()
{
int instan,p,q,i,j,k;
cin>>instan;
for(i=;i<instan;i++)
{
exist=; memset(chess,,sizeof(chess));
cin>>p>>q;
cout<<"Scenario #"<<i+<<":"<<endl;
for(j=;j<q;j++)
{
for(k=;k<p;k++)
{
path=;
rec.clear();
//cout<<"Start from "<<k<<" "<<j<<":"<<endl;
DFS(j,k,q,p);
if(exist==)
{
cout<<rec<<endl;
break;
} }
if(exist==)
{
break;
}
}
if(exist==) cout<<"impossible"<<endl;
cout<<endl; }
return ;
}
poj2488骑士之旅的更多相关文章
- poj2488骑士马走
#include<stdio.h> #include<stdlib.h> int data[100][100] = {0}; int Dx[8] = {-1,1,-2,2,-2 ...
- 我的Android进阶之旅------>经典的大牛博客推荐(排名不分先后)!!
本文来自:http://blog.csdn.net/ouyang_peng/article/details/11358405 今天看到一篇文章,收藏了很多大牛的博客,在这里分享一下 谦虚的天下 柳志超 ...
- bzoj4336: BJOI2015 骑士的旅行
Description 在一片古老的土地上,有一个繁荣的文明. 这片大地几乎被森林覆盖,有N座城坐落其中.巧合的是,这N座城由恰好N-1条双 向道路连接起来,使得任意两座城都是连通的.也就是说,这些城 ...
- Poweroj:来自学长的善意:ZQ的杀龙之旅(状压BFS)
传送门:https://www.oj.swust.edu.cn/problem/show/2794 来自学长的善意:ZQ的杀龙之旅 Time Limit: 15000 MS Memory Limit: ...
- 刷题总结——骑士的旅行(bzoj4336 树链剖分套权值线段树)
题目: Description 在一片古老的土地上,有一个繁荣的文明. 这片大地几乎被森林覆盖,有N座城坐落其中.巧合的是,这N座城由恰好N-1条双 向道路连接起来,使得任意两座城都是连通的.也就是说 ...
- Linq之旅:Linq入门详解(Linq to Objects)
示例代码下载:Linq之旅:Linq入门详解(Linq to Objects) 本博文详细介绍 .NET 3.5 中引入的重要功能:Language Integrated Query(LINQ,语言集 ...
- WCF学习之旅—第三个示例之四(三十)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) WCF学习之旅—第三个示例之三(二十九) ...
- Spring之旅(2)
Spring简化Java的下一个理念:基于切面的声明式编程 3.应用切面 依赖注入的目的是让相互协作的组件保持松散耦合:而AOP编程允许你把遍布应用各处的功能分离出来形成可重用的组件. AOP面向切面 ...
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...
随机推荐
- C# 一个WCF简单实例
以订票为例简单应用wcf 新建一个wcf服务应用程序 在IService1.cs定义服务契约 复制代码 代码如下: namespace WcfDemo { // 注意: 如果更改此处的接口名称 &qu ...
- 自己定义GSON类型适配器
Exception in thread "main" java.lang.RuntimeException: No-args constructor for class java. ...
- 无废话WCF入门教程二[WCF应用的通信过程]
一.概述 WCF能够建立一个跨平台的安全.可信赖.事务性的解决方案,是一个WebService,.Net Remoting,Enterprise Service,WSE,MSMQ的并集,有一副很经典的 ...
- 10. IDENTITY属性使用小结
原文:10. IDENTITY属性使用小结 从SQL Server 2012开始有了Sequence,简单用列如下: CREATE SEQUENCE TestSeq START INCREMENT ; ...
- bootstrap3-datepicker and jquery.form.js
bootstrap3-datepicker 和 jquery.form.js 这两个控件又起来都比较简单,就一起介绍了. 先说datepicker. github上的地址是:https://githu ...
- 日志之再说Log4J
网上关于LOG4J的使用文章太多了,写这篇文章的目的一方面是为了回顾LOG4J的用法,一方面针对配置的使用自动将日志插入数据库,自动发送邮件,还有就是自定义输入实现.后续文章会总结下从LOG4J到LO ...
- PhpStorm创建Drupal模块项目开发教程(5)
Drupal项目开发中,问题跟踪器的设置,可以保证信息的交互.是开发中,不可或缺的部分. 接下来,就PhpStorm IDE中,问题跟踪器集成的配置操作就行图文解说. Settings | Tasks ...
- QT中出现“无法解析的外部符号”错误
串口中我要把奇偶校验等enum数据对应写到一个ComboBox中去,所以需要在我的Settings类中加入一个函数用来转换. 这里,我首先在settings.h的class Settings中加上对该 ...
- leetcode[67] Plus One
题目:对一个用vector存的数字进行加1,然后返回加1后的值. 一次就在oj上通过了. 就是进位加上当前位如果大于9,那就当前位等于0: 随后进位还为1的话就是在数组前面插入一个1: class S ...
- Objective C多态
面向对象的封装的三个基本特征是.继承和多态. 包是一组简单的数据结构和定义相关的操作在上面的其合并成一个类,继承1种亲子关系,子类能够拥有父类定的成员变量.属性以及方法. 多态就是指父类中定义的成员变 ...