单源最短路(Dijkstra)-poj1502
2013-08-10 13:29
225 查看
题意:求从第一个人到其他所有人的传播的最短时间,可以同时传给很多人。
思路:Dijkstra算法求最短路,其中最大的就是需要的最小时间。
思路:Dijkstra算法求最短路,其中最大的就是需要的最小时间。
#include<iostream> #include<climits> #include<cstring> #include<cstdlib> #include<cstdio> using namespace std; int map[110][110]; int dis[110]; int n; void dijstra() { bool vis[110]; for(int i=2; i<=n; i++) { dis[i]=map[1][i]; vis[i]=0; } dis[1]=0; vis[1]=1; int x; for(int i=2; i<=n; i++) { int min1=1000000; for(int j=2; j<=n; j++) if(!vis[j]&&dis[j]>0&&dis[j]<min1) { min1=dis[j]; x=j; } vis[x]=1; for(int j=1; j<=n; j++) if(map[j][x]>0) if(dis[j]>dis[x]+map[j][x]) dis[j]=dis[x]+map[j][x]; } } int main() { //freopen("in.txt","r",stdin); char x[10]; while(cin>>n) { for(int i=1; i<=n; i++) for(int j=1; j<=i; j++) { if(i==j) map[i][j]=0; else { cin>>x; getchar(); if(strcmp(x,"x")==0) map[i][j]=map[j][i]=1000000; else map[i][j]=map[j][i]=atoi(x); } } dijstra(); int sum=0; int min1=0; for(int i=2; i<=n; i++) if(dis[i]>min1) {min1=dis[i];} cout<<min1<<endl; } return 0; }
相关文章推荐
- POJ1502 MPI Maelstrom(dijkstra,最短路)
- POJ1502---MPI Maelstrom(Dijkstra最短路基础题)
- POJ1502 MPI Maelstrom(最短路dijkstra)
- POJ1502_MPI Maelstrom_最短路::朴素的dijkstra
- POJ - 3268 Silver Cow Party (往返最短路,Floyd,Dijkstra 2次优化)
- BZOJ 1975: [Sdoi2010]魔法猪学院 K短路 dijkstra A*
- POJ 3268 Silver Cow Party 最短路 dijkstra
- CodeForces 20C Dijkstra? (最短路)
- Cogs 309. [USACO 3.2] 香甜的黄油 dijkstra,堆,最短路,floyd
- Bzoj 2834: 回家的路 dijkstra,堆优化,分层图,最短路
- 【poj 1724】 ROADS 最短路(dijkstra+优先队列)
- 【最短路入门专题1】 hdu 1874 B - 畅通工程续 坑题【dijkstra】
- hdu4849 Wow! Such City!(最短路dijkstra)
- HDU - 1535 Invitation Cards (最短路dijkstra)
- 单源最短路(Dijkstra)邻接表实现
- 图论: 优先队列 + dijkstra最短路…
- dijkstra_heap最短路堆优化
- HDOJ题目2544 最短路(最短路径问题,Dijkstra模板)
- 最短路之dijkstra
- POJ 2449 Remmarguts' Date ( Dijkstra + A* 求解第K短路 )