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

先分析这道题:兔子到达终点的时间时固定的,因此只需要考虑乌龟了,乌龟骑电车和骑自行车的时间,然后计算,因为中间有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();
}
}

最新文章

  1. java复习集合类之List接口
  2. IOS UIWebView 下拉刷新功能的简单实现
  3. jquery常用总结
  4. Performance Considerations for Entity Framework 4, 5, and 6
  5. Spark源码学习1.5——BlockManager.scala
  6. Qt 环境下的mapx控件-------2
  7. 使用IE11抓包,防止在网页跳转时抓包数据被清除的方法
  8. 【C语言】07-基本语句和运算
  9. Poj(2784),二进制枚举最小生成树
  10. php设计模式之观察者模式
  11. Qt 学习之路:文本文件读写
  12. nginx trouble shooting
  13. flex stage.width 与stage.stageWidth的区别
  14. Python实战之实现简单的购物车系统
  15. python访问互联网
  16. 11.Django|中间件
  17. you have to first modify the default Eclipse configuration to avoid XML cosmetic errors:
  18. WPF应用的一些小总结(模板、样式,上下文)
  19. 配置ElasticSearch快捷启动
  20. goruntine

热门文章

  1. Go语言之匿名函数
  2. [转] 简述js中 for in 与 for of 区别
  3. html5 之 local storage \sessjion storage
  4. html知识杂记
  5. Sql与C#中日期格式转换总结
  6. MySQL InnoDB中的事务隔离级别和锁的关系
  7. JVM笔记(虚拟机各内存的介绍)
  8. solr配置IKAnalyzer抛出ClassNotFoundException
  9. Python交互图表可视化Bokeh:6. 轴线| 浮动| 多图表
  10. ContentProvider工作原理