Timus 1298. Knight
来源:互联网 发布:公务员 知乎 编辑:程序博客网 时间:2024/05/18 00:35
原题:Knight
题意:给出n*n的棋盘,用马的方式(走“日”字型),若能不重复地走完每一个格子,那么输出方案
解法:暴力dfs
#include <iostream>using namespace std;int dir[8][2]={2,1, 1,2 ,-1,2 ,-2,1 ,-2,-1 ,-1,-2 , 1,-2, 2,-1};int f[10][10] = {0}, n;bool flag = false;void dfs(int t, int x, int y) { if (t >= n*n) { flag = true; return; } for (int k = 0; k < 8; k++) { int x1 = x+dir[k][0]; int y1 = y+dir[k][1]; if (x1 <= 0 || y1 <= 0 || x1 > n || y1 > n) continue; if (f[x1][y1] != 0) continue; f[x1][y1] = t+1; dfs(t+1, x1, y1); if (flag) return; f[x1][y1] = 0; }}int main() { cin >> n; f[1][1] = 1; dfs(1, 1, 1); if (!flag) cout << "IMPOSSIBLE\n" << endl; else { for (int k = 1; k <= n*n; k++) for (int i = 1; i <= n; i++) for (int j = 1; j <= n; j++) if (f[i][j] == k) { cout << char('a'+i-1) << j << endl; } }}
0 0
- Timus 1298. Knight
- Lonesome knight[Timus OJ 1197]
- URAL 1298. Knight(DFS)
- timus 1017
- timus 1073
- timus 1211. Collective guarantee
- Timus 1225. Flags dp
- timus graph theory
- [timus] 1020. Rope
- [timus] 1319. Hotel
- timus 1005 stone pile
- timus 1073 Square Country
- timus 1352. Mersenne Primes
- 1001. Reverse Root(Timus)
- timus 1280 Topological Sorting
- timus 1711.Code Names
- Timus 1741. Communication Fiend
- Timus 1586. Threeprime Numbers
- Object-C 协议
- test03
- 科学美国人|Bird Combines Calls in Specific Order
- NGINX 使用
- Glib翻译
- Timus 1298. Knight
- linux自学笔记(1)
- 远程连接MySQL, 10038问题
- 附近的人打招呼V1.0
- LeetCode 309. Best Time to Buy and Sell Stock with Cooldown(股票交易)
- Android edittext 禁止复制粘贴问题解决方案
- C/C++ 中调用matlab 的两种方式
- Scroller使用
- shell sftp密码输入 lftp工具