蒟蒻的小问题
  • 板块学术版
  • 楼主Xbai_8787
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/6/7 13:53
  • 上次更新2023/10/27 23:48:38
查看原帖
蒟蒻的小问题
732604
Xbai_8787楼主2022/6/7 13:53

原题(我太菜了)

本蒟蒻看了很久的代码心态崩了只是不知道错在哪里

我请教了一下DFS是能过的

原码:

#include<iostream>
#include<cstring>
using namespace std;
int dx[12]={-2,-2,-2,-2,-1,-1,1,1,2,2,2,2};
int dy[12]={-2,-1,1,2,-2,2,-2,2,-2,-1,1,2};
int a[21][21]={},sx1,sy1,sx2,sy2,minn=0xffffff;
void dfs(int x,int y,int step){
	if(x==1&&y==1){
		if(step<minn)minn=step;
		return ;
	}
	a[x][y]=1;
	int tx,ty;
	for(int i=0;i<12;i++){
		tx=x+dx[i];
		ty=y+dy[i];
		if(tx>0&&tx<=20&&ty>0&&ty<=20&&a[tx][ty]==0){
			dfs(tx,ty,step+1);
		}
	}
}
int main(){
	cin>>sx1>>sy1>>sx2>>sy2;
	dfs(sx1,sx2,0);
	cout<<minn<<endl;
	minn=0xfffffff;
	memset(a,0,sizeof(a));
	dfs(sx2,sy2,0);
	cout<<minn;
	return 0;
} 
2022/6/7 13:53
加载中...