P2802广搜WA了#1#10#11#12
  • 板块灌水区
  • 楼主Tis员工
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/7/24 10:54
  • 上次更新2023/10/27 18:41:15
查看原帖
P2802广搜WA了#1#10#11#12
430920
Tis员工楼主2022/7/24 10:54

https://www.luogu.com.cn/problem/P2802

#include<bits/stdc++.h>
using namespace std;
inline int read(){
	int x=0,f=1;char ch=getchar();
	while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
	while(ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
	return x*f;
}
int n,m,h=0,t=1,x,y;
int a[10][10],xx;
bool p[10][10];
int q[105][5],yy;
int dx[]={0,0,-1,1};
int dy[]={-1,1,0,0};
int main()
{
    //freopen(".in","r",stdin);freopen(".out","w",stdout);
    //ios::sync_with_stdio(false);
    n=read();m=read();
    for(int i=1;i<=n;i++){
    	for(int j=1;j<=m;j++){
    		a[i][j]=read();
    		if(a[i][j])p[i][j]=1;
    		if(a[i][j]==2){q[1][1]=i;q[1][2]=j;q[1][3]=0;q[1][4]=6;p[i][j]=0;}
    		if(a[i][j]==3){x=i;y=j;}
		}
	}
	while(h<t){
		h++;
		if(q[h][4]==0)continue;
		for(int i=0;i<4;i++){
			xx=q[h][1]+dx[i];yy=q[h][2]+dy[i];
			if(xx>=1&&yy>=1&&xx<=n&&yy<=m&&p[xx][yy]){
				t++;q[t][1]=xx;q[t][2]=yy;q[t][3]=q[h][3]+1;q[t][4]=q[h][4]-1;p[xx][yy]=0;
				if(xx==x&&yy==y){cout<<q[t][3];return 0;}
				if(a[xx][yy]==4)q[t][4]=6;
			}
		}
	}
	cout<<-1;
	return 0;
}

求调

2022/7/24 10:54
加载中...