求助,为什么将string改char就AC了
查看原帖
求助,为什么将string改char就AC了
1047605
ZBXAMZL楼主2024/3/21 14:21
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
queue<pair<int,int> >q;
int n,m,mx,my,start_x,start_y,dist[205][205],ans;
char mp[205][205];//只是将string mp[205]改成char mp[205][205]就A了
int dx[8]={0,0,1,-1,1,-1,1,-1},
	dy[8]={1,-1,0,0,1,1,-1,-1};
int main(){
	memset(dist,-1,sizeof(dist));
	cin>>n>>m>>mx>>my;
	start_x=m-my+1;
	start_y=mx;
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			cin>>mp[i][j];
		}
	}
	q.push(make_pair(start_x,start_y));
	dist[start_x][start_y]=0;
	while(!q.empty()){
		int sx=q.front().first;
		int sy=q.front().second;
		q.pop();
		for(int i=0;i<8;i++){
			int nx=sx+dx[i],ny=sy+dy[i];
			if(nx<1||nx>m||ny<1||ny>n||mp[nx][ny]=='*')continue;
			if(dist[nx][ny]!=-1)continue;
			dist[nx][ny]=dist[sx][sy]+1;
			ans=max(ans,dist[nx][ny]);
			q.push(make_pair(nx,ny));
		}
	}
	cout<<ans<<endl;
	return 0;
}
2024/3/21 14:21
加载中...