1596 最短路径的变形
Posted 青春的梦想付诸行动
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1596 最短路径的变形相关的知识,希望对你有一定的参考价值。
回顾一下。。
直接用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 最短路径的变形的主要内容,如果未能解决你的问题,请参考以下文章
HDU1596 find the safest road---(最短路径dijkstra,#变形#)
POJ 3255 Roadblocks (Dijkstra求最短路径的变形)(Dijkstra求次短路径)