hdu 1690 Bus System Floyd 求最短路径
2014-03-11 22:29
239 查看
题目地址: hdu1690
给你一些车站,问这些车站之间的最“短”(费用最少)路径。
结点个数100 直接用floyd
比较坑的是,给的坐标并没有按升序 还要用abs wa了很多次
给你一些车站,问这些车站之间的最“短”(费用最少)路径。
结点个数100 直接用floyd
比较坑的是,给的坐标并没有按升序 还要用abs wa了很多次
#include<iostream> #include<cmath> using namespace std; #define INF 1000000000000000000LL typedef long long inta; int l1,l2,l3,l4,c1,c2,c3,c4; int n,m; inta d[105][105]; inta px[105]; void init() { for(int i=0;i<n;i++) for(int j=0;j<n;j++) d[i][j]=INF; for(int i=0;i<n;i++) d[i][i]=0; } void floyd() { for(int k=0;k<n;k++) for(int i=0;i<n;i++) for(int j=0;j<n;j++) if(d[i][k]!=INF&&d[k][j]!=INF) d[i][j]=d[i][j]<d[i][k]+d[k][j]?d[i][j]:d[i][k]+d[k][j]; } inta calc(inta dist) { if(dist<=l1) return c1; else if(dist<=l2) return c2; else if(dist<=l3) return c3; else if(dist<=l4) return c4; else return INF; } int main() { int cas; cin>>cas; int from,to; for(int l=0;l<cas;l++) { cin>>l1>>l2>>l3>>l4>>c1>>c2>>c3>>c4>>n>>m; for(int i=0;i<n;i++) cin>>px[i]; init(); // 初始化 for(int i=0;i<n;i++) for(int j=i+1;j<n;j++) { d[i][j]=d[i][j]<calc(abs(px[j]-px[i]))?d[i][j]:calc(abs(px[j]-px[i])); d[j][i]=d[i][j]; } floyd(); cout<<"Case "<<l+1<<":"<<endl; for(int i=0;i<m;i++) { cin>>from>>to; if(d[from-1][to-1]!=INF) cout<<"The minimum cost between station "<<from<<" and station "<<to<<" is "<<d[from-1][to-1]<<"."<<endl; else cout<<"Station "<<from<<" and station "<<to<<" are not attainable."<<endl; } } }
相关文章推荐
- HDU 1690 多源最短路径 Bus System
- HDU 1690 Bus System(多源最短路径)
- HDU-1690-还是最短路径(floyd)
- hdu 1690 Bus System (最短路径)
- (step6.2.1)hdu 1690(Bus System——最短路径)
- hdu 1690 Bus System Floyd 求最短路径
- HDU 1690 Bus System 任意点最短路径Floyd
- [最短路径] HDU 1690 - Bus System
- HDU 1690 Bus System (最短路径bellmamford算法)
- HDU 1690 多源最短路径 Bus System
- hdu 3499 Flight (最短路径)
- HDU -- 3790 最短路径问题 (Dijkstra+priority_queue)
- HDU 1874 畅通project续 (最短路径)
- HDU-3790 最短路径问题(双重权值)
- HDU 3870 Catch the Theves(平面图最小割转最短路径)
- HDU 1874 单源最短路径
- hdu 3790 最短路径问题(最短路)
- hdu--最短路径问题--3790
- [HDU] 1026 Ignatius and the Princess I 简单建模后广搜索求最短路径生成树
- hdu 2066最短路径(Dijkstra算法)