Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 26191 | Accepted: 14459 |
Description
Input
Output
Sample Input
3 2 2 4 3 5 2 1 2 3 6 2 1 2 2 2 5 3 4 4 2 8 5 3 1 5 8 4 1 6 4 10 2 7 5 2 0 2 2 5 1 5 0
Sample Output
3 2 3 10
水题。意思是通过股票经纪人散播谣言,给出经纪人散播谣言的时间,求从哪个经纪人开始花费时间最少,是多少。。
dijkstra 即可。
1 /*====================================================================== 2 * Author : kevin 3 * Filename : StockbrokerGrapevine.cpp 4 * Creat time : 2014-07-08 15:19 5 * Description : 6 ========================================================================*/ 7 #include <iostream> 8 #include <algorithm> 9 #include <cstdio> 10 #include <cstring> 11 #include <queue> 12 #include <cmath> 13 #define clr(a,b) memset(a,b,sizeof(a)) 14 #define M 105 15 #define INF 0x7f7f7f7f 16 using namespace std; 17 int c[M][M],dis[M],n; 18 bool vis[M]; 19 int dijkstra(int vo) 20 { 21 int i,j,k; 22 for(i = 0; i < n; i++){ 23 dis[i] = c[vo][i]; 24 vis[i] = false; 25 } 26 vis[vo] = true; 27 j = 0; 28 for(i = 1; i < n; i++){ 29 int _min = INF; 30 for(k = 0; k < n; k++){ 31 if(_min > dis[k] && !vis[k]){ 32 _min = dis[k]; 33 j = k; 34 } 35 } 36 vis[j] = true; 37 for(k = 0; k < n; k++){ 38 if(!vis[k] && dis[k] > dis[j] + c[j][k]){ 39 dis[k] = dis[j] + c[j][k]; 40 } 41 } 42 } 43 int _max = 0; 44 for(int i = 0; i < n; i++){ 45 if(_max < dis[i] && i != vo){ 46 _max = dis[i]; 47 } 48 } 49 return _max; 50 } 51 int main(int argc,char *argv[]) 52 { 53 while(scanf("%d",&n)!=EOF && n){ 54 for(int i = 0; i <= n; i++){ 55 for(int j = i; j <= n; j++){ 56 c[i][j] = c[j][i] = INF; 57 } 58 } 59 int t,a,v; 60 for(int i = 0; i < n; i++){ 61 scanf("%d",&t); 62 for(int j = 0; j < t; j++){ 63 scanf("%d%d",&a,&v); 64 c[i][a-1] = v; 65 } 66 } 67 int ans = INF,cnt; 68 for(int i = 0; i < n; i++){ 69 int t = dijkstra(i); 70 if(ans > t){ 71 ans = t; 72 cnt = i; 73 } 74 } 75 if(ans == INF){ 76 printf("disjoint\n"); 77 } 78 else 79 printf("%d %d\n",cnt+1,ans); 80 } 81 return 0; 82 }
poj 1125 -- Stockbroker Grapevine,布布扣,bubuko.com
poj 1125 -- Stockbroker Grapevine
原文:http://www.cnblogs.com/ubuntu-kevin/p/3831650.html