站外题求调(悬双关
  • 板块题目总版
  • 楼主Innate_Joker
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/7/23 14:10
  • 上次更新2024/7/23 14:59:02
查看原帖
站外题求调(悬双关
1086443
Innate_Joker楼主2024/7/23 14:10

链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1252

#include<cstring>
#include<iostream>
using namespace std;
int main() {
	int n,m;
	cin>>n>>m;
	char map[41][41];
	memset(map,'#',sizeof(map));
	for(int i=1; i<=n; i++)
	  for(int j=1; j<=m; j++)
	    cin>>map[i][j];
	int head=0,tail=1;
	int queue[4000][3];
	queue[tail][0]=queue[tail][1]=queue[tail][2]=1;
	do {
		head++;
		const int dx[4] {-1,1,0,0},
				  dy[4] {0,0,-1,1};
		for(int i=1; i<=n; i++) {
			int hx=queue[head][0]+dx[i];
			int hy=queue[head][1]+dy[i];
			if(map[hx][hy]!='#') {
				tail++;
				queue[tail][0]=hx;
				queue[tail][1]=hy;
				queue[tail][2]=queue[head][2]+1;
				if(hx==n&&hy==m) {
					cout<<queue[tail][2];
					return 0;
				}
				map[hx][hy]='#';
			}
		}
	} while(head!=tail);
}

运行错误了

2024/7/23 14:10
加载中...