社区讨论
站外题,玄关,急!
题目总版参与者 4已保存回复 14
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 14 条
- 当前快照
- 1 份
- 快照标识符
- @lv0xwxpp
- 此快照首次捕获于
- 2024/04/15 20:37 2 年前
- 此快照最后确认于
- 2024/04/15 22:50 2 年前
1084.【搜索与回溯算法】马的走法
时间限制: 1 s
空间限制: 256MB
题目描述
在5x5的棋盘上,给定一位置,输出马回到原点有多少种不同的方案。
注意:马走的每一步必须在棋盘上,走斜日,如下图:
注意:棋盘的左上角坐标为 (1,1)。
输入
给定一位置:x y,中间有一空格隔开。
输出
输出可以回到原点的方案总数。
样例数据
输入
1 1
输出
61424
主要我不知道搜索结束条件是什么
me的代码
CPP#include <cstdio>
using namespace std;
int dx[8] = {-2, -2, -1, 1, 2, 2, 1, -1}, dy[8] = {-1, 1, 2, 2, 1, -1, -2, -2};
int p, q, ans, first, a[105][105], vis[105][105];
void search (int, int);
int main()
{
scanf ("%d%d", &p, &q);
vis[p][q] = 1;
search (p, q);
printf ("%d", ans);
return 0;
}
void search (int x, int y)
{
if ()//这里该怎么写?
else
{
for (int i = 0; i <= 7; i++)
{
int xx = x + dx[i];
int yy = y + dy[i];
if (xx >= 1 && xx <= 5 && yy >= 1 && yy <= 5 && vis[xx][yy] == 0)
{
vis[xx][yy] = 1;
search (xx, yy);
vis[xx][yy] = 0;
}
}
}
}
在线等,挺急的!
回复
共 14 条回复,欢迎继续交流。
正在加载回复...