题目描述
在某条线路上有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 936http://ac.jobdu.com/problem.php ... -
2011清华考研机试题1
2011-08-09 14:40 675题目描述 http://ac.jobdu.com/proble ... -
poj3259 spfa解法
2011-08-08 19:59 1392同上题,不过改的spfa算法,注意每个节点进入队列的次数至多为 ... -
poj3259 bellman水题
2011-08-08 17:04 996poj3259http://poj.org/problem?i ... -
acm题目常用的预处理
2011-08-08 15:26 1203#include<iostream> #in ... -
poj1860
2011-08-08 14:06 740poj1860http://poj.org/problem?i ... -
water~9
2011-08-06 18:01 461poj2109http://poj.org/problem?i ... -
water~8
2011-08-06 17:22 650poj2027http://poj.org/problem?i ... -
water~7
2011-08-06 17:15 602poj1328http://poj.org/problem?i ... -
water~6
2011-08-06 14:27 759poj1088http://poj.org/problem?i ... -
water~5
2011-08-06 14:24 664poj1003http://poj.org/problem?i ... -
water~4
2011-08-06 14:09 705poj1004http://poj.org/problem?i ... -
water~3
2011-08-06 13:59 566poj2159http://poj.org/problem?i ... -
water~2
2011-08-06 12:10 566poj3299http://poj.org/problem?i ... -
water~1
2011-08-06 10:35 671poj1503http://poj.org/problem?i ... -
POJ3280 简单DP
2011-08-05 14:48 925poj3280:http://poj.org/problem? ... -
POJ3253
2011-08-04 13:36 810poj3253:http://poj.org/problem? ...
相关推荐
【哈工大考研复试C语言机考试题及代码】这个资料包主要涵盖了哈尔滨工业大学在考研复试阶段针对C语言编程能力的考察内容。哈工大作为国内知名的高等学府,其计算机科学与技术专业的考研竞争激烈,对考生的编程基础有...
(精华版)国家开放大学电大《政府经济学》机考3套真题题库及答案6.pdf
在浙大研究生C++复试题中,我们可以预期以下几个核心知识点: 1. **基本语法和数据类型**:包括变量声明、常量、运算符、流程控制(如if-else,switch,for,while循环)以及函数的使用。 2. **指针与引用**:这是...
### 华为OD机考100题之五键键盘输出问题 #### 问题背景与描述 本题目属于算法设计类题目,旨在考察考生对于键盘输入处理的理解以及基本的编程能力。题目要求根据一系列给定的键盘输入指令,模拟一个特殊键盘的操作...
##### 练习题3 **题目1:根据前序和中序序列构建二叉树** - **问题描述**: - 输入二叉树的前序和中序序列。 - 构建该二叉树,并输出后序序列、叶节点个数以及二叉树的高度。 - **解题思路**: 1. 定义二叉树...
武汉大学的复试机考是研究生入学考试的重要环节,主要针对技术型专业,旨在评估考生的编程能力、逻辑思维以及对专业知识的理解。以下是一些关于复试机考的关键知识点: 1. **编程基础**:复试中通常会涉及到编程...
复旦大学作为国内顶尖高校,其软件工程与计算机科学专业的考研和保研竞争激烈,而机考是复试过程中的重要环节。本压缩包文件“复旦大学软件-计算机-保研-考研复试-机考.zip”包含了丰富的复习资料,旨在帮助考生更好...
包括清华大学06年-18年的上机考试试题真题,对于复试上机考试非常有帮助
北邮计算机研究生复试历年上机测试模拟试题及真题.pdf 本资源包含四个编程问题,分别是人数统计、数字统计、字母统计和二叉树前序遍历。这四个问题都是北邮计算机学院研究生入学考试(复试)上机测试模拟试题的一...
【华为机考100题-带答案】是针对华为技术认证考试的一份复习资料,包含了一百个问题及其对应的解答。这样的文档对于备考华为认证的考生来说是极为宝贵的资源,能够帮助他们全面了解和掌握考试可能涉及的知识点。这份...
内容概要:华为od机考算法题题库,刷题用 适用人群:大厂机考面试者,学生 应用场景:机考算法题,含答案和解题思路
华为校招硬件技术工程师机考试卷试题包括答案.docx
2020国开《建筑材料(A)》期末机考真题库9.pdf
3. 将减法结果转换回N进制字符串。 4. 处理可能的负数结果,添加负号。 这两个问题都属于编程基础和算法范畴,是华为OD机考中考察的重要部分。通过解答这些问题,考生能够提升自己的编程思维,熟悉基本的数据结构和...
北邮复试上机题目
【华为OD机考2023试题】涉及的IT知识点主要涵盖算法设计、字符串处理、游戏逻辑、日志管理、链表操作以及优化问题解决。下面将分别详细讲解这些知识点。 1. **任务混部问题**: 这是一道典型的资源调度优化问题,...
"华为机考试题+答案参照.pdf" 本资源是一个华为机考试题集,涵盖了多个IT领域的知识点,包括算法、数据结构、操作系统等。本文将对每个题目进行详细的解释和分析。 1. 评委打分问题: * 知识点:算法、数组操作 ...
3. **切割体的投影分析**:根据题目的判断题,我们可以理解切割球体的情况。例如,半球体的底面是水平面,切割球体的一个平面可以是正平面,另一个可以是水平面,但不能同时是水平面和侧平面。用正平面切割球体,其...
5. 2011年和2012年的复试机试试题:这些年的试题可能更加注重对新技术的关注,例如,可能会涉及到计算机图形学、人工智能、大数据处理等热门领域,同时对考生的综合能力和解决问题的能力有更高的要求。 6. 2009年...
【标题】"综合类机考模拟题.zip"揭示了这个压缩包主要包含的是与专升本(即从专科升入本科)考试相关的综合类计算机知识模拟试题。机考,即计算机化考试,意味着这些试题可能涉及到在线答题系统,考生需要在计算机上...