#include <iostream>
using namespace std;
char n, m;
char map[200][200]; int kfc[100][2]; int Y[2], M[2];
int ytime[100], mtime[100];
int sum[100],t;//summin表示去所有kfc两人最短时间,sum表示去一个kfc的最短时间
int visit[200][200];
void judge(int x1, int y1, int x0, int y0,int time) {
visit[x1][y1] = 1;
if (x1 == x0 && y1 == y0) {
sum[t] = time;
t++;
}
int x_incre[4] = { 0,1,0,-1 }, y_incre[4] = { 1,0,-1,0 };
int i, j, k;
for (int k = 0; k < 4; k++) {
i = x1 + x_incre[k]; j = y1 + y_incre[k];
if (i >= 0 && j >= 0 && i < n && j < m && map[i][j] != '#' && visit[i][j] != 1)
judge(i, j, x0, y0, time++);
}
}
int main()
{
int kfcnum;
while (cin >> n >> m)
{
kfcnum = 0;
for (int i = 0; i < n; i++)//准备阶段输入地图
{
for (int j = 0; j < m; j++) {
cin >> map[i][j];
if (map[i][j] == '@') {
kfc[kfcnum][0] = i;
kfc[kfcnum][1] = j;//标记kfc位置
kfcnum++;
}
if (map[i][j] == 'Y') {
Y[0] = i; Y[1] = j;//标记yifenfei位置
}
if (map[i][j] == 'M') {
M[0] = i; M[1] = j;//标记Merceki位置
}
}
}
for (int i = 0; i < kfcnum; i++) {
t = 0;
for (int i = 0; i < n; i++)
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
visit[i][j] = 0;
}//将每次到达的位置清空
judge(Y[0], Y[1], kfc[i][0], kfc[i][1], 0);
ytime[i] = sum[0];//判断y到kfc[i]的最短时间
for (int j = 0; j < t; j++)
if (sum[j] < ytime[i])
ytime[i] = sum[t];
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
visit[i][j] = 0;
}
t = 0;
judge(M[0], M[1], kfc[i][0], kfc[i][1], 0);
mtime[i] = sum[0]; //判断m到kfc[i]的最短时间
for (int j = 0; j < t; j++)
if (sum[j] < mtime[i])
mtime[i] = sum[t];
}
int mintime = ytime[0] + mtime[0];//求出到所有kfc中的最短时间之和的最小值
for (int i = 1; i < kfcnum; i++)
if ((ytime[i] + mtime[i]) < mintime)
mintime = ytime[i] + mtime[i];
mintime = mintime * 11;
cout << mintime << endl;
}
}
请问大这个地图求最短路径代码是哪里有问题,为什么没有输出呢?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2023-03-22 22:54关注
错误太多了
for (int i = 0; i < n; i++)
for (int i = 0; i < n; i++)
这里一样的循环条件重复2次???解决评论 打赏 举报无用 1
悬赏问题
- ¥15 使用百度地图api 位置函数报错?
- ¥15 metamask如何添加TRON自定义网络
- ¥66 关于川崎机器人调速问题
- ¥15 winFrom界面无法打开
- ¥30 crossover21 ARM64版本安装软件问题
- ¥15 mymetaobjecthandler没有进入
- ¥15 mmo能不能做客户端怪物
- ¥15 osm下载到arcgis出错
- ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
- ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。