P1002 TLE 0分
  • 板块灌水区
  • 楼主Dead_Butterfly
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/3/29 19:01
  • 上次更新2024/3/29 21:11:31
查看原帖
P1002 TLE 0分
1020763
Dead_Butterfly楼主2024/3/29 19:01

提交记录
题目
用的是深搜。

#include<bits/stdc++.h>
using namespace std;
long long bx,by,mx,my,dt[25][25],pd,pd2,pd3,pd4,ljs;
void zmg(int x,int y)
{
	if(x==bx&&y==by)
	{
		ljs++;
		return ;
	}
	pd=0;
	pd2=0;
	pd3=0;
	pd4=0;
	if(x-1>=0) if(dt[x-1][y]==-1) pd=1;
	if(x+1<=bx) if(dt[x+1][y]==-1) pd2=1;
	if(y-1>=0) if(dt[x][y-1]==-1) pd3=1;
	if(y+1<=by) if(dt[x][y+1]==-1) pd4=1;
	if(pd==1&&pd2==1&&pd3==1&&pd4==1) return ;
	dt[x][y]=-1;
	if(dt[x+1][y]!=-1&&x+1<=bx) zmg(x+1,y);
	if(dt[x-1][y]!=-1&&x-1>=0) zmg(x-1,y);
	if(dt[x][y+1]!=-1&&y+1<=by) zmg(x,y+1);
	if(dt[x][y-1]!=-1&&y-1>=0) zmg(x,y-1);
	dt[x][y]=0;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin>>bx>>by>>mx>>my;
	if(mx-2>=0)
	{
		if(my-1>=0) dt[mx-2][my-1]=-1;
		if(my+1<=by) dt[mx-2][my+1]=-1;
	}
	if(mx-1>=0)
	{
		if(my-2>=0) dt[mx-1][my-2]=-1;
		if(my+2<=by) dt[mx-1][my+2]=-1;
	}
	if(mx+1<=bx)
	{
		if(my-2>=0) dt[mx+1][my-2]=-1;
		if(my+2<=by) dt[mx+1][my+2]=-1;
	}
	if(mx+2<=bx)
	{
		if(my-1>=0) dt[mx+2][my-1]=-1;
		if(my+1<=by) dt[mx+2][my+1]=-1;
	}
	zmg(0,0);
	cout<<ljs;
	return 0;
}
2024/3/29 19:01
加载中...