0分全WA求助 (样例过了)
查看原帖
0分全WA求助 (样例过了)
819362
Wyy_w123楼主2023/3/24 18:33

这题tm的不能下载数据:

#include<bits/stdc++.h>
using namespace std;
int n,m,u,w=0,que[250005][3],mx,my,dt=1;
char xb[505][505],d[18];
bool f[505][505];
int ex[4]={0,0,-1,1};
int ey[4]={-1,1,0,0};
void bfs(){
	que[1][0]=mx;
	que[1][1]=my;
	int head=0,tail=1;
	while(head<tail){
		head++;
		for(int i=0;i<4;i++){
			int xt=que[head][0]+ex[i];
			int yt=que[head][1]+ey[i];
			if((xt>=1&&xt<=n&&yt>=1&&yt<=m)&&(!f[xt][yt])&&(xb[xt][yt]!='*')){
				if(int(xb[xt][yt])>65&&int(xb[xt][yt])<=90){
					w+=que[head][2]+1;
					d[dt]=xb[xt][yt];
					xb[xt][yt]='*';
					mx=xt;
					my=yt;
					head=tail;
					break;
				}
				f[xt][yt]=1;
				que[++tail][0]=xt;
				que[tail][1]=yt;
				que[tail][2]=que[head][2]+1;
			}
		}
	}
}

int main(){
	cin>>n>>m>>u;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>xb[i][j];
			if(xb[i][j]=='A'){
				xb[i][j]='*';
				mx=i;
				my=j;
			}
		}
	}
	d[dt]='A';
	for(int i=1;i<u;i++){
		dt++;
		bfs();
		memset(f+1,0,sizeof(f));
	}
	cout<<w<<endl;
	for(int i=1;i<=u;i++){
		cout<<d[i];
	}
	return 0;
}

2023/3/24 18:33
加载中...