POJ_2488(DFS算法,西洋棋)
POJ_2488,dfs西洋棋问题,同马走日(POJ_4123)
#include <iostream>
#include <cstring>
#include <cmath>
using namespace std;
bool chess[26][26];
int row,col,count,flag;
int nextstep[8][2]={{ -1,-2 },{ 1,-2 },{ -2,-1 },{ 2,-1 },{ -2,1 },{ 2,1 },{ -1,2 },{ 1,2 }};
int result[700][2];
void mydfs(int currow,int curcol){if(count>=row*col){flag=1;return ;}else{for(int i=0;i<8;i++){int nextrow=currow+nextstep[i][0];int nextcol=curcol+nextstep[i][1];if(nextrow<row && nextrow>=0 && nextcol<col && nextcol>=0 && !chess[nextrow][nextcol]){chess[nextrow][nextcol]=1;count++;result[count-1][0]=nextrow;result[count-1][1]=nextcol;mydfs(nextrow,nextcol);if(flag) return ;count--;chess[nextrow][nextcol]=0;}}return ;}
}int main(){int test; cin>>test;for(int testid=1;testid<=test;testid++){cin>>row>>col;cout<<"Scenario #"<<testid<<":"<<endl;if(row==1 && col==1){cout<<"A1"<<endl<<endl;continue;}if(row<3 || col<3){cout<<"impossible"<<endl<<endl;continue;}flag=0; count=1;memset(chess,0,sizeof(chess));//全部遍历意味着起始点从(0,0)开始字典序最小 chess[0][0]=1; result[0][0]=0; result[0][1]=0;mydfs(0,0);if(flag){for(int i=0;i<row*col;i++){char c=result[i][1]+'A';cout<<c<<result[i][0]+1;}cout<<endl<<endl;}else cout<<"impossible"<<endl<<endl;}return 0;
}
POJ_2488(DFS算法,西洋棋)相关推荐
- UA SIE545 优化理论基础5 搜索与整数规划1 DFS算法
UA SIE545 优化理论基础5 搜索与整数规划1 DFS算法 DFS方法基础 邮票问题 这部分的主要目标是建立求解整数规划的方法,早期解决整数规划需要穷举,后来人们把搜索技术应用到整数规划中,极大 ...
- 继西洋棋大师、魔术方块之后 人工智能挑战迭迭乐游戏
借助机器学习和算法模型等,机器人已成为西洋棋大师,魔术方块记录刷新者.MIT麻省理工学院的科学家研制的新机器人的挑战项目是「迭迭乐(Jenga)游戏」,别看迭迭乐规则看似简单,但是对动手能力和思维策略 ...
- 在西洋棋、将棋打败人类之后,电脑也将在围棋战胜人类
1997 年,在 IBM 的深蓝战胜西洋棋世界冠军 Garry Kasparov 之后,<时代>杂志提出了一项新的挑战:让电脑与人类下围棋吧,它获胜的机会很小."电脑要在围棋上战 ...
- boost::graph模块实现DFS算法的测试程序
boost::graph模块实现DFS算法的测试程序 实现功能 C++实现代码 实现功能 boost::graph模块实现DFS算法的测试程序 C++实现代码 #include <boost/g ...
- C语言递归实现深度优先搜索DFS算法(附完整源码)
C语言递归实现DFS算法 完整Graph.h 头文件 完整Graph.c 源文件文件 完整dfs_recursive.c 源文件(main测试函数) 完整Graph.h 头文件 #include &l ...
- c语言dfs算法,DFS算法源程序
/* dfs算法 */ #include #include #include #include /* 函数结果状态代码 */ #define True 1 #define False ...
- DFS算法原理及其具体流程,包你看一遍就能理解
目录 写在前面 DFS算法 所解决的问题 所需要的数据结构 代码结构及解释 方法一:递归 解释 递归dfs总结 方法二:栈 解释 栈dfs总结 写在前面 因为楼主也是刚开始刷leetcode,所以下面 ...
- 数据结构与算法38-鸭棋
数据结构与算法38-鸭棋 题目描述 题目背景 鸭棋是一种风靡鸭子界的棋类游戏.事实上,它与中国象棋有一些相似之处,但规则不尽相同.在这里,我们将为你介绍鸭棋的规则. 同时,我们下发了一个模拟鸭棋规则的 ...
- JAVA算法:李白遇花喝酒游戏JAVA DFS 算法设计
JAVA算法:李白遇花喝酒游戏JAVA DFS 算法设计 看到了这样的一道题目,还挺有意思,可以通过不同的算法设计来求解. 话说大诗人李白,一生好饮.一日,他提着酒壶,从家里出来,酒壶中有酒2斗.他边 ...
最新文章
- MultipartEntity与UrlEncodedFormEntity区别
- 论文阅读:Multi-scale orderless pooling of deep convolutional activation features
- java第一章Java语言概述和入门程序
- 拉格朗日插值法(Lagrange)
- 第六期.Net开源社群联合分享--除了情结和价格,Azure最适合什么场景?等你来讲趟坑的实战经验!
- 汇编语言-006(数组操作 、字符串应用、PUSHFD_POPFD 、PUSHAD_POPAD 、 子程序 函数、 USES 、 INC_DEC )
- LeetCode 435 无重叠区间
- python常用内置函数整理
- 情人节,教你用Python定时给小姐姐微信发送专属问候!
- Spring Boot设置匹配指定后缀*.action *.do的路径
- 小米笔记本Pro 黑苹果10.15.2记录 不需要焊接,完美支持airdrop、接力、随航
- 华为交换机:配置基于IP子网划分 VLAN
- fgo最新服务器,如何看fgo是什么服务器 | 手游网游页游攻略大全
- latex表格实现换行
- 图样图森破 设置虚拟机优先级真的很容易?
- 常见的安全产品与服务整理
- python颜色对照表及颜色搭配
- hdu-6638 Snowy Smile
- 批量!使用ArcGIS python 批量修改遥感影像名
- easypanel php.ini,Linux下EasyPanel及PHP安装升级
热门文章
- UWB到底是什么技术?
- python keyboard hook_Keyboard Hook API函数 参数说明
- Eclipse4.7 (Version: Oxygen.3) 安装Tomcat插件(三只小猫)
- 盖璞发布最新业绩;​星巴克中国内地首家共享空间概念店诞生;加拿大鹅任命Paul Cadman为亚太区总裁 | 知消...
- Cocos2d-x客户端资源加密
- 聊天机器人在教育领域的应用(ChatbotsinEducation)
- matlab盒装图boxplot绘制及简单讲解含义
- 小程序加入人脸识别_【提示】@车墩志愿者们 身份证+人脸识别 “志愿云自助服务”微信小程序上线 再也不用担心忘记用户名密码了...
- 测试之第九集手机兼容性你又了解多少呢
- wepy安装完毕“不是内部或外部命令,也不是可运行的程序或批处理文件”