hdu1874 畅通工程续 (最短路)
来源:互联网 发布:网络主题团日活动 编辑:程序博客网 时间:2024/05/18 02:13
已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。
//经典的单源 最短路 ,用Dijkstra,这里要注意的是有重边,取最小的那个。
已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。//经典的单源 最短路 ,用Dijkstra,这里要注意的是有重边,取最小的那个。#include<iostream>#include<cstdio>#define min(a,b) (a>b? b:a)#define inf 100000000using namespace std;int map[200][200];int d[200],f[200];//d 表示可访问的结点,f表示开始到现在的距离int n,m;void pri(){int i;for(i=0;i<n;i++)printf("%d ",f[i]);printf("\n");}void Dijkstra(int s,int e){ int i,j; int minj,min; for(i=0;i<n;i++)//初始化 { f[i]=map[s][i]; d[i]=1; } f[s]=0; for(i=0;i<n;i++)//用i条路 { min=inf; for(j=0;j<n;j++) { if(d[j]!=0&&f[j]<min) { min=f[j]; minj=j; } } d[minj]=0; for(j=0;j<n;j++) { if(d[j]!=0&&f[j]>f[minj]+map[minj][j])//之前决策点minj到j 和原来的j的比较 { f[j]=f[minj]+map[minj][j]; } } }}int main(){ while(scanf("%d%d",&n,&m)!=EOF) { int i,j; int s,e; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { map[i][j]=inf; map[j][i]=inf; } map[i][i]=0; } int a,b,c; for(i=0;i<m;i++) { scanf("%d%d%d",&a,&b,&c); map[a][b]=min(map[a][b],c); map[b][a]=min(map[a][b],c); } scanf("%d%d",&s,&e); Dijkstra(s,e); if(f[e]!=inf)printf("%d\n",f[e]); else printf("-1\n"); } return 0;}
- hdu1874 畅通工程续 (最短路)
- hdu1874 畅通工程续(最短路)
- HDU1874:畅通工程续(最短路)
- hdu1874-畅通工程续(最短路)
- HDU1874--畅通工程续--最短路
- 畅通工程续(hdu1874,floyd最短路)
- hdu1874 畅通工程续 最短路
- hdu1874 畅通工程续 最短路
- hdu1874 畅通工程续(单元最短路)
- HDU1874-畅通工程续-最短路(dijkstra)
- HDU1874-畅通工程续-最短路
- hdu1874畅通工程续 --hdu2544最短路(Floyd)
- HDU1874畅通工程续 (Dijkstra算法求最短路)
- HDU1874-畅通工程续(Dijkstra最短路)
- HDU1874 畅通工程续 解题报告--最短路dijkstra算法
- ACM-最短路之畅通工程续——hdu1874
- hdu1874畅通工程续【最短路dijkstra&&SPFA&&floyd】
- hdu1874畅通工程续——最短路(Dijkstra算法)(spfa算法)
- poj2752 Seek the Name, Seek the Fame (串)
- patchGuard v2
- Stanford 算法入门 week 6 Bloom Filter, Hash Function, Search Tree
- hdu1233 还是畅通工程 ( 最小生成树)
- svn版本控制系统在CentOS上的部署
- hdu1874 畅通工程续 (最短路)
- 网络整合营销之策略
- hdu1596 最短路
- ACM中使用JAVA
- 简单动态规划——电路布线
- 计算几何题目列表——第三章之群魔乱舞
- asp fso读取文件夹,如何按照时间排序
- hdu 4027#线段树
- Python第一章