矩阵,算法,在线测试题,求牛人解答,非常感谢。

mengjiacun 2013-10-18 10:14:25
通往会议室之路
大众点评网总部分布在几座大楼里,各部门的同事需要到不同的地点的会议室参加会议,无奈楼层互通情况错综复杂,有如迷宫一般,很难迅速找到一条通往会议室的最能节省时间的路径,请编写程序完成这项工作:当一位同事在地点0,想到地点4,如何找到最能节省时间的路径?请说明算法思想。
输入:一个邻接矩阵,代表各楼层之间花费的时间,M代表两个办公区不联通。
{{0,10,M,30,100},
{M,0,50,M,M},
{M,M,0,M,10},
{M,M,20,0,60},
{M,M,M,M,0}}
请注意:先写下您的思路,然后提供代码或伪代码。

...全文
493 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
木犀花香 2013-12-27
  • 打赏
  • 举报
回复
引用 4 楼 lelieven 的回复:
多源多点最短路径问题,用floyd算法。 代码如下
int i,j,k;
int a[n-1][n-1]; //n为顶点数
将上述数组初始化,初值为2^32-1;
for(k=0;k<n;k++)
{
   for(i=0;i<n;i++)
   {
   for(j=0;j<n;j++)
   {
      if(a[i][j] < a[i][k] +a[k][j])
         a[i][j] < a[i][k] +a[k][j];
   }
   }
}
写错了,是这个
int i,j,k;
int a[n-1][n-1]; //n为顶点数
将上述数组初始化,初值为2^32-1;
for(k=0;k<n;k++)
{
   for(i=0;i<n;i++)
   {
   for(j=0;j<n;j++)
   {
      if(a[i][j] < a[i][k] +a[k][j])
         a[i][j] = a[i][k] +a[k][j];
   }
   }
}
木犀花香 2013-12-27
  • 打赏
  • 举报
回复
多源多点最短路径问题,用floyd算法。 代码如下
int i,j,k;
int a[n-1][n-1]; //n为顶点数
将上述数组初始化,初值为2^32-1;
for(k=0;k<n;k++)
{
   for(i=0;i<n;i++)
   {
   for(j=0;j<n;j++)
   {
      if(a[i][j] < a[i][k] +a[k][j])
         a[i][j] < a[i][k] +a[k][j];
   }
   }
}
masquerade9 2013-12-26
  • 打赏
  • 举报
回复
求大牛解答。
mengjiacun 2013-10-18
  • 打赏
  • 举报
回复
牛人哪里去了啊
lm_whales 2013-10-18
  • 打赏
  • 举报
回复
加权最短路径?

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧