hdu 2112 HDU Today &&(dijkstra)
来源:互联网 发布:汽车香水摆件淘宝 编辑:程序博客网 时间:2024/05/16 01:38
题解:因为读入的是字符串,所以用map储存数据,然后就是dijkstra模板;
#include<string>#include<string.h>#include<iterator>#include<iostream>#include<algorithm>#include<map>using namespace std;map<string,int>mybus;#define maxn 1000000#define SIZE 160int vis[SIZE];int len[SIZE];int dis[SIZE][SIZE];void dijkstra(int x,int y,int n){ for(int i=1;i<=n;i++) { len[i]=dis[x][i]; vis[i]=0; } vis[x]=1; len[x]=0; int u; for(int i=2;i<=n;i++) { int minx=maxn; for(int j=1;j<=n;j++) { if(!vis[j]&&len[j]<minx) { minx=len[j]; u=j; } } vis[u]=1; for(int j=1;j<=n;j++) { if(!vis[j]&&len[j]>len[u]+dis[u][j]) len[j]=len[u]+dis[u][j]; } } if(len[y]==maxn) cout<<"-1"<<endl; else cout<<len[y]<<endl;}int main(){ int n; while(1) { cin>>n; if(n==-1) break; mybus.clear(); char st[40],de[40]; cin>>st>>de; int cnt=0; if(!mybus[st]) { cnt++; mybus[st]=cnt; } if(!mybus[de]) { cnt++; mybus[de]=cnt; } for(int i=0;i<SIZE;i++) { for(int j=0;j<SIZE;j++) { dis[i][j]=maxn; } dis[i][i]=0; } char be[40],ed[40]; int l; for(int i=1;i<=n;i++) { cin>>be>>ed; if(!mybus[be]) { cnt++; mybus[be]=cnt; } if(!mybus[ed]) { cnt++; mybus[ed]=cnt; } cin>>l; dis[mybus[be]][mybus[ed]]=dis[mybus[ed]][mybus[be]]=l; } if(strcmp(st,de)==0) cout<<"0"<<endl; else dijkstra(mybus[st],mybus[de],mybus.size()); } return 0;}
0 0
- HDU 2112 Today (Dijkstra)
- HDU 2112 Today Dijkstra
- HDU Today ((Dijkstra)
- hdu 2112 HDU Today (dijkstra)
- HDU 2112 HDU Today(Dijkstra)
- HDU-#2112 HDU Today(Dijkstra+map)
- hdu 2112 HDU Today (Dijkstra + map)
- hdu-2112-HDU Today(dijkstra + map)
- HDU 2112 HDU Today(dijkstra算法)
- hdu 2112 HDU Today &&(dijkstra)
- HDU 2112 HDU Today Dijkstra
- hdu 2112 HDU Today(dijkstra)
- HDU--2112 -- HDU Today [Dijkstra]
- HDU 2112 HDU Today(Dijkstra)
- HDU 2112 HDU Today dijkstra
- hdu 2112 HDU Today-Dijkstra
- hdu 2112 HDU Today(dijkstra)
- 杭电-2112 HDU Today(dijkstra)
- HDU 1051 Wooden SticksLIS
- mysql之varchar后面的长度
- Android MVP模式 ListView中嵌入checkBox的使用
- HDU4521:小明系列问题——小明序列
- excel表格的导入导出
- hdu 2112 HDU Today &&(dijkstra)
- 机房收费系统之二(快速清空控件)
- iOS开发大神必备的Xcode插件
- 【杭电oj1159】Common Subsequence
- 《VR入门系列教程》之7---DK2和Crescent Bay
- MySQL索引入门实例
- Java面向对象之 类与对象
- 关于Android程序崩溃的一些记录
- LinkedBlockingQueue源码阅读