ZOJ1592 POJ2263 Heavy Cargo,Dijkstra算法
2011-08-18 15:10
260 查看
这题没有什么好说的,知道起点和终点,直接用Dijkstra,一次AC。
/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2011-08-18 15:06 # Filename: ZOJ1592 POJ2263 Heavy Cargo.cpp # Description : ******************************************************************************/ // ZOJ1592 POJ2263 Heavy Cargo.cpp : Defines the entry point for the console application. // // #include "stdafx.h" #include <stdio.h> #include <iostream> #include <string> #include <map> #include <functional> #include <memory.h> using namespace std; #define INF 0 int main(void) { int scenario=1; int n,r; map<string,int> mymap; int matrix[202][202]; int path[202]; int visit[202]; string start,end; int len; while(cin>>n>>r &&n&&r) { mymap.clear(); memset(path,0,sizeof(path)); memset(visit,0,sizeof(visit)); int index(0); for(int i=0;i<n;++i) { for(int j=0;j<n;++j) { matrix[i][j]=INF; } matrix[i][i]=10000; } for(int i=0;i<r;++i) { cin>>start>>end>>len; if(mymap.find(start)==mymap.end()) { mymap.insert( make_pair(start,index++)); } if(mymap.find(end)==mymap.end()) { mymap.insert( make_pair(end,index++)); } matrix[mymap[start]][mymap[end]]=len; matrix[mymap[end]][mymap[start]]=len; } cin>>start>>end; int a=mymap[start],b=mymap[end]; for(int i=0;i<n;++i) { path[i]=matrix[a][i]; } visit[a]=1; for(int i=0;i<n;++i) { int minimum(INF); int index(i); for(int j=0;j<n;++j) if(!visit[j] && minimum<path[j] && path[j]> INF) { minimum=path[j]; index=j; } visit[index]=1; for(int j=0;j<n;++j) if(!visit[j] && (matrix[index][j]>INF) && (path[j]<min(matrix[index][j],path[index]))) path[j]=min(matrix[index][j],path[index]); } printf("Scenario #%d\n%d tons\n\n",scenario++,path[b]); } return 0; }
相关文章推荐
- POJ2263 Heavy Cargo
- POJ2263 Heavy Cargo用最短路得到最大流
- POJ2263 Heavy Cargo
- POJ 2263 Heavy Cargo(Dijkstra算法)
- POJ2263 Heavy Cargo
- poj2263 Heavy Cargo --- floyd求最大容量路
- POJ2263:Heavy Cargo
- Dijkstra算法的C++实现
- Dijkstra算法的最短路径实现
- 单源最短路径 dijkstra算法
- 研究Dijkstra算法
- Dijkstra算法,比较faint的代码
- 配合Dijkstra算法的二叉堆实现文件C语言
- Prim和Dijkstra算法的区别
- Dijkstra算法探索及优化
- 【最短路Dijkstra算法】hdu 2851
- 最短路径之Dijkstra算法详细讲解
- Dijkstra算法初探
- dijkstra算法
- 最短路径 Dijkstra算法