DFS不输出
  • 板块P1443 马的遍历
  • 楼主夜阑
  • 当前回复6
  • 已保存回复6
  • 发布时间2021/8/17 17:20
  • 上次更新2023/11/4 10:18:44
查看原帖
DFS不输出
243263
夜阑楼主2021/8/17 17:20

DFS为什么不输出???(没超时)

#include<iostream>
using namespace std;
int map[410][410];
bool f[410][410];
int n,m,x,y;
void dfs(int i,int j,int s){
	map[i][j]=s;
	if(i-1>=1&&j-2>=1&&f[i-1][j-2]==0)dfs(i-1,j-2,s+1);
	if(i-2>=1&&j-1>=1&&f[i-2][j-1]==0)dfs(i-2,j-1,s+1);
	if(i-2>=1&&j+1<=m&&f[i-2][j+1]==0)dfs(i-2,j+1,s+1);
	if(i-1>=1&&j+2<=m&&f[i-1][j+2]==0)dfs(i-1,j+2,s+1);
	if(i+1<=n&&j+2<=m&&f[i+1][j+2]==0)dfs(i+1,j+2,s+1);
	if(i+2<=n&&j+1<=m&&f[i+2][j+1]==0)dfs(i+2,j+1,s+1);
	if(i+2<=n&&j-1>=1&&f[i+2][j-1]==0)dfs(i+2,j-1,s+1);
	if(i+1<=n&&j-2>=1&&f[i+1][j-2]==0)dfs(i+1,j-2,s+1);
	return ;
}
int main(){
	cin>>n>>m>>x>>y;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			map[i][j]=-1;
	dfs(x,y,0);
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cout<<map[i][j]<<' ';
		}
		cout<<endl;
	}
	return 0;
} 
2021/8/17 17:20
加载中...