一看题就知道是动态规划,不过这要看下如何设置变化数组了

先分析这道题:兔子到达终点的时间时固定的,因此只需要考虑乌龟了,乌龟骑电车和骑自行车的时间,然后计算,因为中间有N个充电站,可以看做N个点(到起点的点),加上起点和终点则是N+2的位置,这时我们dp,判断到每个点的最小时间,结果也就是第N+2个点的最短时间

起点时间是0.这是必须的,然后往后面DP

到第i个,就让j从0循环到i-1,依次代表从j站一直开到i站,这样得到到达i站所需要

的最短时间。

最后比较到达第n+2站(终点)的时间与兔子所花的时间就可以了。

上代码:

import java.util.Scanner;

public class Main {
static int L;
static int N,C, T;
static int VR,VT1,VT2;
static int p[]= new int [102];
static double dp[]=new double [105];
static void dp(){
double ans,min;
for(int i=0;i<105;i++)
dp[i]=-1;
dp[0]=0;
for(int i=1;i<N+2;i++){
min = 100000;
for(int j=0;j<i;j++){
int len=p[i]-p[j];
if(len>C){
ans=1.0*C/VT1+(len-C+0.0)/VT2; //如果电量不能达到j到i的距离
}
else{
ans=1.0*len/VT1;          
}
ans+=dp[j];
if(j!=0)
ans+=T;               //过充电站,加上充电时间 
if(min>ans)
min=ans;
}
dp[i]=min;
} } Main(){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
L=sc.nextInt();
N=sc.nextInt();
C=sc.nextInt();
T=sc.nextInt();
VR=sc.nextInt();
VT1=sc.nextInt();
VT2=sc.nextInt();
for(int i=1;i<=N;i++){
p[i]=sc.nextInt();
}
p[0]=0;
p[N+1]=L;
dp();
if(1.0*L/VR<dp[N+1])
System.out.println("Good job,rabbit!");
else
System.out.println("What a pity rabbit!");
} }
public static void main(String[] args) {
new Main();
}
}

杭电acm2059-龟兔赛跑 java的更多相关文章

  1. 杭电HDOJ--ACM1002(JAVA解题,运用BigInteger)(自定义MBigInteger 简单实现大数处理----完善后可以实现百亿计算器)

    转载声明:原文转自http://www.cnblogs.com/xiezie/p/5501901.html     JAVA解题:   import java.util.*; import java. ...

  2. 杭电oj 4004---The Frog Games java解法

    import java.util.Arrays; import java.util.Scanner; //杭电oj 4004 //解题思路:利用二分法查找,即先选取跳跃距离的区间,从最大到最小, // ...

  3. 杭电oj————2057(java)

    question:A+ B again 思路:额,没啥思路/捂脸,用java的long包里的方法,很简单,只是有几次WA,有几点要注意一下 注意:如果数字有加号要删除掉,这里用到了正则表达式“\\+” ...

  4. 杭电oj2093题,Java版

    杭电2093题,Java版 虽然不难但很麻烦. import java.util.ArrayList; import java.util.Collections; import java.util.L ...

  5. 杭电ACM分类

    杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze ...

  6. HDU-2500 做一个正气的杭电人

    http://acm.hdu.edu.cn/showproblem.php?pid=2500 做一个正气的杭电人 Time Limit: 1000/1000 MS (Java/Others)    M ...

  7. 杭电 2047 阿牛的EOF牛肉串 (递推)

    阿牛的EOF牛肉串 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total ...

  8. 做一个正气的杭电人--hdu2500

    做一个正气的杭电人 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  9. 杭电 1272 POJ 1308 小希的迷宫

    这道题是我学了并查集过后做的第三个题,教我们的学姐说这是并查集的基础题,所以有必要牢牢掌握. 下面就我做这道题的经验,给大家一些建议吧!当然,我的建议不是最好的,还请各位大神指出我的错误来,我也好改正 ...

  10. 杭电dp题集,附链接还有解题报告!!!!!

    Robberies 点击打开链接 背包;第一次做的时候把概率当做背包(放大100000倍化为整数):在此范围内最多能抢多少钱  最脑残的是把总的概率以为是抢N家银行的概率之和- 把状态转移方程写成了f ...

随机推荐

  1. 解开一个疑惑,为什么LVS开放的端口,使用netstat或ss命令,不能查找到其监听的端口呢?

    RT, 这个疑问,本周一直在心里,今天找到一个说法. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 另外LVS规则算是内核方法,用netstat -ntulp也显 ...

  2. ExceptionLess的MVC调用

    引用 <package id="Exceptionless" version="4.2.1989" targetFramework="net46 ...

  3. EntityFramework 优化建议(转)

    转载地址:http://blog.jd-in.com/947.html Entity Framework目前最新版本是6.1.3,当然Entity Framework 7 目前还是预览版,并不能投入正 ...

  4. word图片自动编号,前面加章节号

    老实说很多人都没有系统性地学过WORD,毕竟所见即所得,就是学过也比较浅.那么在使用word写作论文时就会感到很烦,因为你想要控制好章节,这样很多的地方就可以按照这种章节自动编号,处理不同节的页眉和页 ...

  5. Java程序员如何选择未来的职业路线

    一.程序员的特性 技术出身的职场人特性很明显,与做市场.业务出身的职场人区别尤其明显.IT行业中常见的一些职场角色:老板.项目经理.产品经理.需求分析师.设计师.开发工程师.运维工程师等.开发工程师具 ...

  6. Enrolment注册插件

    自moodle2.0注册插件必须继承 lib/enrollib.php的  enrol_plugin 抽象类:这个基类包含所有标准方法和开发人员文档 课程注册信息存储在enrol和user_enrol ...

  7. UDF、UDAF、UDTF函数编写

    一.UDF函数编写 1.步骤 1.继承UDF类 2.重写evalute方法 .继承GenericUDF .实现initialize.evaluate.getDisplayString方法 2.案例 实 ...

  8. ceil()函数的应用-hdu1065

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1065 题目描述: floor(x)  is the largest integer not great ...

  9. linuxDNS配置

    DNS配置 vim /etc/resolv.conf nameserver 114.114.114.114

  10. 上海市2019年公务员录用考试第一轮首批面试名单(B类)

    上海市2019年公务员录用考试第一轮首批面试名单(B类) 2019-03-12 设置字体:大 中 小 职位序号 注册编号 职位序号 注册编号 职位序号 注册编号 职位序号 注册编号 1910565 5 ...