题目描述
在某条线路上有N个火车站,有三种距离的路程,L1,L2,L3,对应的价格为C1,C2,C3.其对应关系如下:
距离s 票价
0<S<=L1 C1
L1<S<=L2 C2
L2<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 C3
A B
N
a[2]
a[3]
……
a[N]
输出
可能有多组测试数据,对于每一组数据,
根据输入,输出乘客从A到B站的最小花费。
样例输入
1 2 3 1 2 3
1 2
2
2
样例输出
2
注意:
有的测试数据比较大,简单的dp,注意用long long类型就好了,用scanf和printf,占位符用%lld,vc6.0里面没有long long,只有__int64,输入输出占位符用%I64d,注意提交的时候改过来就好了,题意没说l1,l2,l3,c1,c2,c3的数据类型,根据提交的代码分析,都是整数。
在某条线路上有N个火车站,有三种距离的路程,L1,L2,L3,对应的价格为C1,C2,C3.其对应关系如下:
距离s 票价
0<S<=L1 C1
L1<S<=L2 C2
L2<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 C3
A B
N
a[2]
a[3]
……
a[N]
输出
可能有多组测试数据,对于每一组数据,
根据输入,输出乘客从A到B站的最小花费。
样例输入
1 2 3 1 2 3
1 2
2
2
样例输出
2
#include <iostream> #include <stdio.h> #define MAX_N 1001 #define INF 9999999999 using namespace std; int n; long long dp[MAX_N][MAX_N]; long long l1,l2,l3,c1,c2,c3; int a,b; long long dist[MAX_N]; long long cost(int _a,int _b) { long long d=dist[_b]-dist[_a]; if(0==d) return 0; if(0<d && d<=l1) return c1; if(l1<d && d<=l2) return c2; if(l2<d && d<=l3) return c3; else return INF; } long long dpit(int _a,int _b) { long long min; if(dp[_a][_b]) return dp[_a][_b]; min=cost(_a,_b); for(int i=_a+1;i<_b;i++) { if(min>dpit(_a,i)+cost(i,_b)) min=dpit(_a,i)+cost(i,_b); } dp[_a][_b]=min; return min; } int main() { int i,j; while(scanf("%lld%lld%lld%lld%lld%lld",&l1,&l2,&l3,&c1,&c2,&c3)==6) { cin>>a>>b; cin>>n; dist[1]=0; for(i=2;i<=n;i++) { scanf("%lld",&dist[i]); } for(i=1;i<=n;i++) for(j=1;j<=n;j++) dp[i][j]=0; printf("%lld\n",dpit(a,b)); } return 0; }
注意:
有的测试数据比较大,简单的dp,注意用long long类型就好了,用scanf和printf,占位符用%lld,vc6.0里面没有long long,只有__int64,输入输出占位符用%I64d,注意提交的时候改过来就好了,题意没说l1,l2,l3,c1,c2,c3的数据类型,根据提交的代码分析,都是整数。
发表评论
-
2011清华考研机试题2
2011-08-09 14:56 943http://ac.jobdu.com/problem.php ... -
2011清华考研机试题1
2011-08-09 14:40 687题目描述 http://ac.jobdu.com/proble ... -
poj3259 spfa解法
2011-08-08 19:59 1402同上题,不过改的spfa算法,注意每个节点进入队列的次数至多为 ... -
poj3259 bellman水题
2011-08-08 17:04 1002poj3259http://poj.org/problem?i ... -
acm题目常用的预处理
2011-08-08 15:26 1211#include<iostream> #in ... -
poj1860
2011-08-08 14:06 755poj1860http://poj.org/problem?i ... -
water~9
2011-08-06 18:01 489poj2109http://poj.org/problem?i ... -
water~8
2011-08-06 17:22 671poj2027http://poj.org/problem?i ... -
water~7
2011-08-06 17:15 607poj1328http://poj.org/problem?i ... -
water~6
2011-08-06 14:27 772poj1088http://poj.org/problem?i ... -
water~5
2011-08-06 14:24 685poj1003http://poj.org/problem?i ... -
water~4
2011-08-06 14:09 736poj1004http://poj.org/problem?i ... -
water~3
2011-08-06 13:59 581poj2159http://poj.org/problem?i ... -
water~2
2011-08-06 12:10 582poj3299http://poj.org/problem?i ... -
water~1
2011-08-06 10:35 677poj1503http://poj.org/problem?i ... -
POJ3280 简单DP
2011-08-05 14:48 933poj3280:http://poj.org/problem? ... -
POJ3253
2011-08-04 13:36 815poj3253:http://poj.org/problem? ...
相关推荐
哈工大计算机技术-考研复试、机考试题备考笔记.zip
东北电力大学考研初试与复试机考经验集合涉及的内容非常丰富和详实,旨在为备考东北电力大学的考生提供全面的指导和参考。首先,考研初试作为进入研究生阶段的敲门砖,其重要性不言而喻。该集合会涵盖初试的准备策略...
【哈工大考研复试C语言机考试题及代码】这个资料包主要涵盖了哈尔滨工业大学在考研复试阶段针对C语言编程能力的考察内容。哈工大作为国内知名的高等学府,其计算机科学与技术专业的考研竞争激烈,对考生的编程基础有...
苏州大学计算机学院考研初复试笔记、机考试题.zip
重庆大学计算机考研初试、复试资料包包含的文件夹中主要存放了与重庆大学计算机专业考研相关的资料、历年真题、模拟题以及参考答案。其中,README.md文件是一个重要的指引文档,通常包含了资料包的使用说明、目录...
考虑到华南理工大学计算机软件工程专业的考研复试和机考环节,备考资料的准备显得尤为重要。这次提供的压缩包文件中包含了一系列的编程练习文件和往年的考试资料,这些内容对于准备考研复试的学生来说,无疑是宝贵的...
(精华版)国家开放大学电大《政府经济学》机考3套真题题库及答案6.pdf
哈工大计算机专业考研复试中的C语言机考环节是许多考生面临的一大挑战,该环节通常考察考生对C语言基础知识、算法实现以及编程逻辑的掌握程度。本次解析的真题覆盖了多个编程方向,包括但不限于查找排序算法、数学...
在浙大研究生C++复试题中,我们可以预期以下几个核心知识点: 1. **基本语法和数据类型**:包括变量声明、常量、运算符、流程控制(如if-else,switch,for,while循环)以及函数的使用。 2. **指针与引用**:这是...
### 华为OD机考100题之五键键盘输出问题 #### 问题背景与描述 本题目属于算法设计类题目,旨在考察考生对于键盘输入处理的理解以及基本的编程能力。题目要求根据一系列给定的键盘输入指令,模拟一个特殊键盘的操作...
对于有意向报考北航软件工程专业的学生而言,991软件工程考研初复试是重要的选拔环节,而机考则是其中的关键部分。这份包含代码和笔记的压缩包文件,无疑对准备考试的学生来说是一份宝贵的学习资料。其中涉及的文件...
##### 练习题3 **题目1:根据前序和中序序列构建二叉树** - **问题描述**: - 输入二叉树的前序和中序序列。 - 构建该二叉树,并输出后序序列、叶节点个数以及二叉树的高度。 - **解题思路**: 1. 定义二叉树...
【华为机考100题-带答案】是针对华为技术认证考试的一份复习资料,包含了一百个问题及其对应的解答。这样的文档对于备考华为认证的考生来说是极为宝贵的资源,能够帮助他们全面了解和掌握考试可能涉及的知识点。这份...
武汉大学的复试机考是研究生入学考试的重要环节,主要针对技术型专业,旨在评估考生的编程能力、逻辑思维以及对专业知识的理解。以下是一些关于复试机考的关键知识点: 1. **编程基础**:复试中通常会涉及到编程...
复旦大学作为国内顶尖高校,其软件工程与计算机科学专业的考研和保研竞争激烈,而机考是复试过程中的重要环节。本压缩包文件“复旦大学软件-计算机-保研-考研复试-机考.zip”包含了丰富的复习资料,旨在帮助考生更好...
包括清华大学06年-18年的上机考试试题真题,对于复试上机考试非常有帮助
中山大学计算机学院硕士复试资料(内含机考试题).zip
北邮计算机研究生复试历年上机测试模拟试题及真题.pdf 本资源包含四个编程问题,分别是人数统计、数字统计、字母统计和二叉树前序遍历。这四个问题都是北邮计算机学院研究生入学考试(复试)上机测试模拟试题的一...
一、考研复试与初试的重要性 考研不仅考察学生的理论知识,还注重实践能力的体现,尤其是计算机类专业,上机考试往往成为决定成败的关键环节。厦门大学的保研与考研过程中,对考生的编程能力、算法理解以及问题解决...
清华大学的研究生复试上机考试题是对其考生综合能力的全面考核,从编程能力到逻辑思维,再到对实际问题的理解和解决能力,这些都是清华大学希望选拔的高素质研究生所必备的能力。通过这些题目,清华大学能够在一定...