蒟蒻qiuzhu
  • 板块P2802 回家
  • 楼主ruo_aqueous
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/9/22 08:33
  • 上次更新2024/9/22 10:24:28
查看原帖
蒟蒻qiuzhu
1392551
ruo_aqueous楼主2024/9/22 08:33
#include "bits/stdc++.h"
using namespace std;
long long x,y,minn=1145141919810;
bool lj[105][105]; // 走过的路
char l[105][105];  // 地图
bool flag;		   // 是否走到终点 
void z(long long o,long long p,long long xl,long long sj){
	if (xl == 0)	return ;
	if (o == x&&p == y){
		minn = min (minn,sj);
		flag=1;
		return ;
	}
	if (o > x||o <= 0)	return ;
	if (p > y||p <= 0)	return ;
	if (lj[o][p])		return ;
	if (l[o][p] == '0')	return ;
	if (l[o][p] == '4')	xl=6;
	lj[o][p] = true;
	z (o-1,p,xl-1,sj+1);
	z (o+1,p,xl-1,sj+1);
	z (o,p-1,xl-1,sj+1);
	z (o,p+1,xl-1,sj+1);
}
int main(){
	cin >> x >> y;
	for (int i = 1;i <= x;i ++){
		for (int j = 1;j <= y;j ++){
			cin >> l[i][j];
		}
	}
	z (1,1,6,0);
	if (flag)	cout << minn;
	else		cout << -1;
	return 0;
}
2024/9/22 08:33
加载中...