hdu 1874 畅通工程续
来源:互联网 发布:淘宝背景音乐推荐 编辑:程序博客网 时间:2024/06/07 06:04
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874View CodeView Code
题目大意:计算出要从起点到终点,最短需要行走多少距离。
提供两种方法,第一种:dijkstra算法,很快的找到最小距离值;第二种:floyd算法,三个for循环,很容易超时,注意细节~
代码一:dijkstra算法
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 6 int main () 7 { 8 int a,b,c,n,m,l,k; 9 const int INF=10000;10 int map[205][205],r[205];11 int vis[205];12 while (cin>>n>>m)13 {14 memset(vis,0,sizeof(vis));15 for (int i=0; i<n; i++)16 for (int j=0; j<n; j++)17 {18 if (i!=j)19 map[i][j]=INF;20 else21 map[i][j]=0;22 }23 while (m--)24 {25 cin>>a>>b>>c;26 if (map[a][b]>c)27 map[a][b]=map[b][a]=c;28 }29 cin>>a>>b;30 for (int i=0; i<n; i++)31 {32 r[i]=map[a][i];33 vis[i]=0;34 }35 for (int i=1; i<n; i++)36 {37 l=INF;38 k=0;39 for (int j=0; j<n; j++)40 {41 if (vis[j]==0&&r[j]<l)42 {43 l=r[j];44 k=j;45 }46 }47 vis[k]=1;48 for (int j=0; j<n; j++)49 {50 if (!vis[j]&&r[j]>r[k]+map[k][j])51 r[j]=r[k]+map[k][j];52 }53 54 }55 //cin>>a>>b;56 if (r[b]<INF)57 printf ("%d\n",r[b]);58 else59 printf ("-1\n");60 }61 return 0;62 }
代码二:floyd算法
1 #include <cstdio> 2 #include <cstring> 3 using namespace std; 4 #define INF 10000 5 const int maxn = 201; 6 int r[maxn][maxn]; 7 8 int main () 9 {10 int n,m;11 while (scanf("%d%d",&n,&m)!=EOF)12 {13 memset(r,INF,sizeof(r));14 int a,b,c;15 while (m--)16 {17 scanf("%d%d%d",&a,&b,&c);18 if (r[a][b]>c)19 {20 r[a][b]=r[b][a]=c;21 }22 }23 for (int i=0; i<n; i++)24 r[i][i]=0;25 for (int k=0; k<n; k++)26 for (int i=0; i<n; i++)27 for (int j=0; j<n; j++)28 {29 if (r[i][j]>r[i][k]+r[k][j])30 {31 r[i][j]=r[j][i]=r[i][k]+r[k][j];32 }33 }34 scanf("%d%d",&a,&b);35 if (r[a][b]<INF)36 printf ("%d\n",r[a][b]);37 else38 printf ("-1\n");39 }40 return 0;41 }
0 0
- HDU 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- hdu 1874 畅通工程续
- HDU 1874 畅通工程续
- hdu 1874 畅通工程续
- HDU 1874 畅通工程续
- HDU 1874 畅通工程续
- hdu 1874(畅通工程续)
- hdu 3374 String Problem (kmp+最大最小表示法)
- hdu 1175 连连看 (深搜)
- 抽象问题
- hdu 2544 最短路 (dijkstra,floyd)
- 成员变量、实例变量、类变量、成员方法、实例方法、类方法的区别
- hdu 1874 畅通工程续
- spring aop中的propagation的7种配置的意思
- hdu 2112 HDU Today (最短路)
- poj 2312 Battle City(优先队列+bfs)
- hdu 1548 A strange lift (dijkstra算法)
- hdu 3790 最短路径问题(双重权值,dijkstra算法)
- hdu 1217 Arbitrage (spfa算法)
- poj 2387 Til the Cows Come Home(dijkstra算法)
- hdu 2066 一个人的旅行