社区讨论
求.助.蒟蒻的求助
学术版参与者 3已保存回复 10
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 10 条
- 当前快照
- 1 份
- 快照标识符
- @mi7xca6s
- 此快照首次捕获于
- 2025/11/21 05:09 4 个月前
- 此快照最后确认于
- 2025/11/21 05:09 4 个月前
象棋中的“马”走“日”,如果一匹马只往右边走,那我们就说它是匹好马。如下图所示,现在我们需要将一匹马从左下角(0,0)走到右上角(4,8),请你编程输出一匹好马能走的所有路线,以及路线总数。 路线输出格式:0,0->2,1->3,3->1,4->3,5->2,7->4,8
CPP#include<bits/stdc++.h>
using namespace std;
int a[100][100],t;
int m[4]={2,1,-1,-2},n[4]={1,2,2,1};
void SC(int ans)
{
{
ans++;
for(int i=1;i<ans-1;i++)
cout<<a[i][1]<<","<<a[i][2]<<"->";
cout<<a[ans-1][1]<<","<<a[ans-1][2];
cout<<endl;
}
}
void dfs(int dfs_a)
{
for(int j=0;j<=3;j++)
{
if(a[dfs_a-1][1]+m[j]>=0&&a[dfs_a-1][1]+m[j]<=4&&a[dfs_a-1][2]+n[j]>=0&&a[dfs_a-1][2]+n[j]<=8)
{
a[dfs_a][1]=a[dfs_a-1][1]+m[j];
a[dfs_a][2]=a[dfs_a-1][2]+n[j];
if(a[dfs_a][1]==4&&a[dfs_a][2]==8)SC(dfs_a);
else dfs(dfs_a+1);
}
}
}
int main()
{
a[1][1]=0;
a[1][2]=0;
int sum=2;
dfs(sum);
}
求解 可以用打表
回复
共 10 条回复,欢迎继续交流。
正在加载回复...