蒟蒻求助,dfs为什么不行
查看原帖
蒟蒻求助,dfs为什么不行
511793
037ac了!楼主2024/8/14 16:44
#include<bits/stdc++.h>
using namespace std;
int a,b,c;
int lx[]={0,0,0,1,-1},ly[]={0,1,-1,0,0};
bool l[22][22];
bool jy(){
	for(int i=1;i<=a;i++)
		for(int j=1;j<=b;j++)
			if(l[i][j]==0)return 0;
	return 1;
	
}
void dfs(int x,int y){
	if(jy()) {
		c++;
		return;
	}
	
	for(int i=1;i<=4;i++){
		int xx=x+lx[i],xy=y+ly[i];
		if(xx>=1&&xx<=a&&xy>=1&&xy<=b&&l[xx][xy]==0)l[xx][xy]=1,dfs(xx,xy),l[xx][xy]=0;
	}return;
}
int main(){
	cin>>a>>b;
	l[1][1]=1;
	dfs(1,1);
	cout<<c;
	return 0;
}
2024/8/14 16:44
加载中...