标签:des style blog http color os strong io
链接:http://poj.org/problem?id=1502
Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 5249 | Accepted: 3237 |
Description
Input
Output
Sample Input
5 50 30 5 100 20 50 10 x x 10
Sample Output
35
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
题意怎么会这个样子?根本读不出来这个意思,是要有多坑???
看了别人的博客,原来是求什么从1号点到其他各点的最小距离的最大值
还看不懂?
1--->2 35
1--->3 30
1--->4 20
1--->5 10
所以就是35…………
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <algorithm> #define INF 1000000000 #define MAXX 105 int map[MAXX][MAXX]; int d[MAXX],visit[MAXX]; void Dijkstra(int n) { int i,j; memset(visit,0,sizeof(visit)); for(i=1;i<=n;i++) { d[i] = (i==1? 0 : INF); } for(i=1;i<=n;i++) { int x,m=INF; for(j=1;j<=n;j++) { if(!visit[j] && d[j]<=m) { m = d[x = j]; } } visit[x]=1; for(j=1;j<=n;j++) { if(!visit[j] && d[j]>d[x]+map[x][j]) { d[j]=d[x]+map[x][j]; } } } } int main() { int n,i,j; char m[10]; //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); while(scanf("%d",&n)!=EOF) { for(i=0;i<MAXX;i++) for(j=0;j<MAXX;j++) { if(i == j) { map[i][j]=0; } else map[i][j]=INF; } for(i=2;i<=n;i++) { for(j=1;j<i;j++) { scanf("%s",m); if(m[0] != ‘x‘) { map[i][j]=map[j][i]=atoi(m);//printf("%d##",atoi(m)); } } } Dijkstra(n); int maxx=0; for(i=1;i<=n;i++) { if(maxx<d[i]) maxx=d[i]; } printf("%d\n",maxx); } return 0; }
poj 1502 最短路+坑爹题意,布布扣,bubuko.com
标签:des style blog http color os strong io
原文地址:http://www.cnblogs.com/ccccnzb/p/3887464.html