46代码求调
查看原帖
46代码求调
804757
Light_Star_RPmax_AFO楼主2023/3/31 22:28
#include <bits/stdc++.h>
using namespace std;
int n,k,mx,my,ans,xy,xx;
char a[320][320];
int x[160010];
struct mi{
	int x,y;
}m[160010];
int dx[4]{-1,1,0,0},dy[4]{0,0,1,-1};
void zhao(int x,int y){
	for(int i=0;i<n;i++){
		for(int j=0;j<k;j++)
			if(i!=x&&j!=y){
				if(a[i][j]==a[x][y]){
					xx=i;
					xy=j;
				}
			}
	}
}
int main(){
	cin>>n>>k;
	for(int i=0;i<n;i++)
		scanf("%s",a[i]);
	for(int i=0;i<n;i++)
		for(int j=0;j<k;j++)
			if(a[i][j]=='@')m[1].x=i,m[1].y=j;
	int head=0,tail=1; x[1]=0; a[m[1].x][m[1].y]='#';
	while(head<tail){
		head++;
		mx=m[head].x,my=m[head].y;
		ans=x[head];
		for(int i=0;i<4;i++){
			if(a[mx+dx[i]][my+dy[i]]!='#'&&mx+dx[i]>=0&&my+dy[i]>=0&&mx+dx[i]<n&&my+dy[i]<k){
				if(a[mx+dx[i]][my+dy[i]]>='A'&&a[mx+dx[i]][my+dy[i]]<='Z'){
					tail++;
					x[tail]=ans+1;
					zhao(mx+dx[i],my+dy[i]);
					m[tail].x=xx;
					m[tail].y=xy;
				}
				else if(a[mx+dx[i]][my+dy[i]]=='='){cout<<ans+1;return 0;}
				else {
					if(a[mx+dx[i]][my+dy[i]]=='.'){
					tail++;
					x[tail]=ans+1;
					a[mx+dx[i]][my+dy[i]]='#';
					m[tail].x=mx+dx[i];
					m[tail].y=my+dy[i];
					}
				}
			}
		}
	}
	return 0;
}

this

2023/3/31 22:28
加载中...