1152. 简单的马周游问题
来源:互联网 发布:照片转卡通软件 编辑:程序博客网 时间:2024/06/06 00:39
找到后break要放到深搜后面呢……被阴了几次
#include <iostream>#include <cstring>using namespace std;bool been[5][6];int dir[8][2];int route[30];int count;bool found;void initial() {dir[0][0] = -2, dir[0][1] = -1;dir[1][0] = -2, dir[1][1] = 1;dir[2][0] = 2, dir[2][1] = -1;dir[3][0] = 2, dir[3][1] = 1;dir[4][0] = -1, dir[4][1] = -2;dir[5][0] = -1, dir[5][1] = 2;dir[6][0] = 1, dir[6][1] = -2;dir[7][0] = 1, dir[7][1] = 2;memset(been, false, sizeof(been));memset(route, 0, sizeof(route));count = 0;found = false;}int point(const int x, const int y) {return x*6+y+1;}bool valid(const int x, const int y) {return (x >= 0 && x <= 4 && y >= 0 && y <= 5);}void dfs(int x, int y) {if(found) {return;}for(int i = 0; i < 8; i++) {int newx = x + dir[i][0];int newy = y + dir[i][1];if(valid(newx, newy) && !been[newx][newy]) {route[count++] = point(newx, newy);been[newx][newy] = true;if(count == 30) {found = true;}dfs(newx, newy); if(found) {break;} been[newx][newy] = false; count--;}}}void print() {cout << route[0];for(int i = 1; i <= 29; i++) {cout << ' ' << route[i];}cout << endl;}int main() {int n;while(cin >> n && n != -1) {initial();route[count++] = n;int st_x = (n-1)/6, st_y = n%6-1;been[st_x][st_y] = true;dfs(st_x, st_y);print(); }return 0;}
0 0
- 1152. 简单的马周游问题
- sicily 1152.简单的马周游问题
- Sicily 1152.简单的马周游问题
- Sicily 1152. 简单的马周游问题
- 1152. 简单的马周游问题
- Sicily 1152. 简单的马周游问题
- [sicily]1152. 简单的马周游问题
- sicily 1152. 简单的马周游问题
- 简单的马周游问题
- sicily 1152 简单的马周游问题
- Sicily 1152 简单的马周游问题
- sicily 1152 简单的马周游问题
- Sicily 1152 简单的马周游问题
- <OJ_Sicily>1152简单的马周游问题
- 马的周游问题
- Sicily 1152 简单的马周游问题[Speical judge]
- Sicilly 1152 马的简单周游问题(5*6)
- Sicily 1152 简单的马周游问题[Special judge]
- JAVA中文件压缩、解压小方法分享
- 如何把一个高字节和一个低字节合成一个short型数据
- sublineText里面输入中文解决方法
- 硬件调试的步骤
- 使用js实现tab页签切换效果
- 1152. 简单的马周游问题
- 嵌入式 十个最值得阅读学习的C开源项目代码
- 内部类——静态内部类
- Memcached深度分析-memcached 说明1
- UVa139 - Telephone Tangles(水题)
- OGRE中用到的设计模式
- vs 2013下的_CRT_SECURE_NO_WARNINGS
- L5智能净饮机,一键解决小妈妈们泡奶的烦恼
- CKEditor+CKFinder+jsp整合配置