好心人看一下
  • 板块学术版
  • 楼主yoyiETO
  • 当前回复14
  • 已保存回复14
  • 发布时间2020/5/20 21:15
  • 上次更新2023/11/7 02:06:18
查看原帖
好心人看一下
277173
yoyiETO楼主2020/5/20 21:15

题目:http://oj.codingle.cn/#/ebank/K11544

#include<bits/stdc++.h>
using namespace std;
int ax,ay,bx,by;
bool vis[101][101],ok=1;
int dx[12]={-2,-1,1,2,-2,2,-2,2,-2,-1,1,2};
int dy[12]={-2,-2,-2,-2,-1,-1,1,1,2,2,2,2};
void dfs(int x,int y,int step)
{
	vis[x][y]=1;
	if(x==1&&y==1&&ok){
		cout<<step<<"\n";
		ok=0;
		return;
	}
	for(int i=0;i<12;i++)
	{
		int xx=x+dx[i],yy=y+dy[i];
		if(xx>=1&&yy>=1&&xx<=100&&yy<=100&&!vis[xx][yy])
			dfs(xx,yy,step+1);
	}
}
int main()
{
	cin>>ax>>ay>>bx>>by;
	dfs(ax,ay,1);
	ok=1;
	memset(vis,0,sizeof(vis));
	dfs(ay,ax,1);
	return 0;
} 

输出107和109,求助

2020/5/20 21:15
加载中...