九度oj 1086
来源:互联网 发布:apache tomcat 6下载 编辑:程序博客网 时间:2024/06/06 17:36
- 题目描述:
- 在某条线路上有N个火车站,有三种距离的路程,L1,L2,L3,对应的价格为C1,C2,C3.其对应关系如下:距离s 票价0<S<=L1 C1L1<S<=L2 C2L2<S<=L3 C3输入保证0<L1<L2<L3<10^9,0<C1<C2<C3<10^9。每两个站之间的距离不超过L3。当乘客要移动的两个站的距离大于L3的时候,可以选择从中间一个站下车,然后买票再上车,所以乘客整个过程中至少会买两张票。现在给你一个 L1,L2,L3,C1,C2,C3。然后是A B的值,其分别为乘客旅程的起始站和终点站。然后输入N,N为该线路上的总的火车站数目,然后输入N-1个整数,分别代表从该线路上的第一个站,到第2个站,第3个站,……,第N个站的距离。根据输入,输出乘客从A到B站的最小花费。
- 输入:
- 以如下格式输入数据:L1 L2 L3 C1 C2 C3A BNa[2]a[3]……a[N]
- 输出:
- 可能有多组测试数据,对于每一组数据,根据输入,输出乘客从A到B站的最小花费。
- 样例输入:
1 2 3 1 2 31 222
- 样例输出:
2
- 来源:
2011年清华大学计算机研究生机试真题
#include<iostream>#include<stdio.h>#define inf 9999999999using namespace std;long long int l1,l2,l3,c1,c2,c3; long long int a,b,n; long long int route[200][200];long long int cost(long long int l){ if(l>=0&&l<=l1) { return c1; } else if(l<=l2) { return c2; } else if(l<=l3) { return c3; } else if(l>l3) { return inf; } } int main(){ while(cin>>l1>>l2>>l3>>c1>>c2>>c3) { cin>>a>>b; if(a==b) { cout<<"0"<<endl; continue; } long long int dis[1000]; int n; cin>>n; dis[1]=0; for(int i=2;i<=n;i++) { cin>>dis[i]; } for(int i=1;i<=n;i++) { for(int j=i;j<=n;j++) { if(i==j) { route[i][j]=0; } else { route[i][j] = route[j][i] = cost(dis[j]-dis[i]);} } } long long longs[1000]; int mark[1000]; for(int i=1;i<=n;i++) { longs[i]=route[a][i]; mark[i]=0; } mark[a]=1; int newp=a; for(int j=1;j<n;j++) { for(int i=1;i<=n;i++) { if(route[newp][i]==inf) { continue; } if(mark[i]==1) { continue; } if(longs[i]>longs[newp]+route[newp][i]) { longs[i]=longs[newp]+route[newp][i]; } } long long min=inf; for(int i=1;i<=n;i++) { if(mark[i]==0&&longs[i]<min) { min=longs[i]; newp=i; } } mark[newp]=1; } cout<<longs[b]<<endl; } }
0 0
- 九度oj 1086
- 九度OJ 1086
- 【九度OJ】:九度OJ 1050
- 【九度OJ】:九度OJ 1053
- 【九度OJ】:九度OJ 1056
- 【九度OJ】:九度OJ 1059
- 【九度OJ】:九度OJ 1206
- 九度OJ 1086 最小花费
- 【九度OJ】1086【线性动态规划】
- 九度OJ 题目1086:最小花费
- 九度 oj 题目1086:最小花费
- 九度OJ:1000
- 【九度OJ】 1006
- 九度 OJ 1499
- 九度OJ-1002
- 九度OJ-1003
- 九度OJ 1004
- 九度OJ 1003
- ALBB 二叉树中相差最大节点的绝对差值
- MySQL中like语句及相关优化器tips
- 安卓开发实现应用程序与系统的沉浸效果
- 2015 Multi-University Training Contest 9 hdu 5396 Expression
- 关于mysql inner join 连接查询的优化
- 九度oj 1086
- 面试大总结之一:Java搞定面试中的链表题目
- std::string::find() 和 std::string::npos
- SQL优化大全
- 虚拟机安装redhat--环境搭建
- 常见的七种回归技术
- 【.Net码农】var, object, dynamic的区别以及使用
- MySQL性能优化小记:MySQL子查询很慢的问题
- Android 数据存储与IO之SharedPreferences的使用