POJ 2263 Heavy Cargo 最短路dijkstra
2012-07-24 18:52
302 查看
字符串处理+dijkstra修改一下
View Code
View Code
#include<stdio.h> #include<string.h> #define maxn 201 int n,m,num; int dis[maxn],adj[maxn][maxn]; bool vis[maxn]; int MIN(int a ,int b) { return a < b ? a : b; } int MAX(int a, int b) { return a > b ? a :b; } char str[201][35],s[35]; int find() { int i; for(i=0;i<num;i++) { if(strcmp(str[i],s)==0)return i; } strcpy(str[num++],s); return num-1; } int dijkstra(int v, int e) { int i ,j ,k, u, max; for(i=0;i<n;i++) { dis[i]=adj[v][i]; vis[i]=0; } vis[v]=1;dis[v]=0; for(i=0;i<n-1;i++) { max = -1; for(j=0;j<n;j++) { if(max < dis[j]&&!vis[j]) { max = dis[j]; u = j; } } if(max == -1)break; vis[u]=1; for(j=0;j<n;j++) { if(!vis[j]&&adj[u][j]>-1) { dis[j]=MAX(MIN(dis[u],adj[u][j]),dis[j]); } } } return dis[e]; } int main() { int i,j,x,y,w,X=1; while(~scanf("%d%d",&n,&m)&&n) { num=0; memset(str,0,sizeof(str)); for(i=0;i<=n;i++) { for(j=0;j<=n;j++) { adj[i][j]= -1; } } while(m--) { scanf("%s",s); x=find(); scanf("%s",s); y=find(); scanf("%d",&w); if(adj[x][y] < w) { adj[x][y]=w; adj[y][x]=w; } } scanf("%s",s);int ss=find(); scanf("%s",s);int t=find(); printf("Scenario #%d\n%d tons\n\n",X++,dijkstra(ss,t)); } return 0; }
相关文章推荐
- POJ 2263 Heavy Cargo 最短路dijkstra
- POJ 2263 Heavy Cargo (SPFA+Dijkstra,最短路变形)
- POJ 2263 Heavy Cargo (SPFA+Dijkstra,最短路变形)
- poj_2263 Heavy Cargo (Dijkstra)
- poj 2263 Heavy Cargo 最短路 变形
- (Relax dijkstra1.2)POJ 2263 Heavy Cargo(使用dijkstra来求解最大生成树问题)
- poj 2263 Heavy Cargo(最短路+floyd)
- poj 2263 Heavy Cargo(最短路+floyd)
- poj 1062 昂贵的聘礼(最短路dijkstra)
- poj 3268 Silver Cow Party(dijkstra最短路)
- poj 3268 Silver Cow Party(dijkstra ++ 双向最短路)
- poj 3463 dijkstra变形(求最短路和次短路的数量)
- (POJ 1062)昂贵的聘礼 在可选的顶点中求最短路 dijkstra + 枚举
- POJ - 3268 Silver Cow Party解题报告(dijkstra分别求单源起点和单源终点的最短路)
- poj 1797 Heavy Transportation 【最短路Dijkstra 变式】
- POJ 2253 Frogger 最短路-Dijkstra的变形形式
- POJ-2253-Frogger [最短路][Dijkstra]
- POJ - 2387 Til the Cows Come Home(最短路Dijkstra模板题)
- 【poj 1724】 ROADS 最短路(dijkstra+优先队列)
- POJ 2387(最短路dijkstra)