码迷,mamicode.com
首页 > 其他好文 > 详细

1596 最短路径的变形

时间:2016-05-17 17:35:51      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:

题目:

 

回顾一下。。

直接用dijkstra算法。。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
double G[1010][1010];//二维数组的存储
int n,s,t;//

void dijkstra(int s,int t)
{
     bool vis[1010];
     double dis[1010];//保存最安全路径;
     int i,j,k;
     
     for(int i=1;i<=n;i++)
          dis[i]=G[s][i];
     memset(vis,false,sizeof(vis));
     dis[s]=0;
     vis[s]=true;
     for(i=1;i<n;i++)
     {
          k=-1;
          for(j=1;j<=n;j++)
          {
               if(!vis[j]&&(k==-1||dis[k]<dis[j]))
                    k=j;
          }
          if(k==-1)      //图不连通
               break;
          vis[k]=true;
          for(j=1;j<=n;j++)
               if(!vis[j]&&dis[j]<dis[k]*G[k][j])
                    dis[j]=dis[k]*G[k][j];
     }
     if(dis[t])
          printf("%.3lf\n",dis[t]);
     else
          printf("What a pity!\n");
}
int main()
{
     while(~scanf("%d",&n))
     {
          int x;
          for(int i=1;i<=n;i++)
          {
               for(int j=1;j<=n;j++)
               {
                    scanf("%lf",&G[i][j]);
               }
          }
          scanf("%d",&x);
          while(x--)
          {
               scanf("%d%d",&s,&t);
               dijkstra(s,t);
          }
     }
     return 0;
}
               

 

1596 最短路径的变形

标签:

原文地址:http://www.cnblogs.com/WDKER/p/5502298.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!