题意:见题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2059

解题报告:以前一直没看出来这题是个DP题,知道是DP题就简单了 。首先要把起点和终点看成是两个充电站,然后假设有两个点i 和 j,判断的就 是假设如果从

i 充电站充电一次,直到j点,判断这样到j点一共用的时间,取小的,核心的一句代码就是:

dp[j] = min(dp[j],dp[i] + judge(i,j) + T);

judge(i,j)这个函数用来你判断 当 在  i 点充电后直到 j 点,这一段路所需要的时间是,然后dp[i] 是冲起点到 i 点所花费的时间,然后T表示在i点充电所

花费的时间。

 #include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std; double que[],T[];
int n;
double l,c,t,vr,vt[]; double judge(int i,int j)
{
if(que[j] - que[i] > c)
return (c / vt[] + (que[j] - que[i] - c) / vt[]);
else return (que[j] - que[i]) / vt[];
} int main()
{
while(scanf("%lf",&l)!=EOF)
{
scanf("%d%lf%lf",&n,&c,&t);
scanf("%lf%lf%lf",&vr,&vt[],&vt[]);
for(int i = ;i <= n;++i)
scanf("%lf",&que[i]);
que[] = T[] = ;
n++;
que[n] = l;
for(int i = ;i <= n;++i)
if(que[i] <= c)
T[i] = que[i] / vt[];
else T[i] = c / vt[] + (que[i] - c) / vt[];
for(int i = ;i < n;++i)
for(int j = n;j > i;--j)
T[j] = min(T[j],T[i] + judge(i,j) + t);
double t_vr = l / vr;
printf(T[n] < t_vr? "What a pity rabbit!\n":"Good job,rabbit!\n");
}
return ;
}

HDU 2056 龟兔赛跑 (DP)的更多相关文章

  1. hdu 2059 龟兔赛跑 (dp)

    /* 把起点和终点比作加油站,那总共同拥有n+2个加油站了, 每次都求出从第0个到第j个加油站(j<i)分别在加满油的情况下到第i个加油站的最短时间dp[i], 终于的dp[n+1]就是最优解了 ...

  2. hdu 4123 树形DP+RMQ

    http://acm.hdu.edu.cn/showproblem.php? pid=4123 Problem Description Bob wants to hold a race to enco ...

  3. hdu 4507 数位dp(求和,求平方和)

    http://acm.hdu.edu.cn/showproblem.php?pid=4507 Problem Description 单身! 依旧单身! 吉哥依旧单身! DS级码农吉哥依旧单身! 所以 ...

  4. hdu 3709 数字dp(小思)

    http://acm.hdu.edu.cn/showproblem.php?pid=3709 Problem Description A balanced number is a non-negati ...

  5. hdu 4352 数位dp + 状态压缩

    XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  6. hdu 4283 区间dp

    You Are the One Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  7. HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化

    HDU 2829 区间DP & 前缀和优化 & 四边形不等式优化 n个节点n-1条线性边,炸掉M条边也就是分为m+1个区间 问你各个区间的总策略值最少的炸法 就题目本身而言,中规中矩的 ...

  8. HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)

    HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化) 题意分析 先把每种硬币按照二进制拆分好,然后做01背包即可.需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数 ...

  9. HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)

    HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化) 题意分析 给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份.首先可以确定的是如果石头的价值总和为奇数的话,那 ...

随机推荐

  1. A - 摆仙果

    题目描述 Adrian, Bruno与Goran三人参加了仙界的宴会,宴会开始之前先准备了一些仙果供三人品尝,但是仙果的摆放有顺序要求,如果把仙果摆错了位置,仙果就会消失而无法品尝到. 由于三人是第一 ...

  2. #个人博客作业Week1——浏览教材后提出的5个问题

    1.对于MSF的团队模型,请问是团队中的哪个角色监督9项原则的实现?是否会浪费时间和精力在践行9项原则上?2.在调查用户需求和用户体验时如何让不同阶层的用户更多的参与度?3.想成为一位优秀的PM需要从 ...

  3. 《Linux内核分析》 第六节 进程的描述和进程的创建

    <Linux内核分析> 第六节 进程的描述和进程的创建 20135307 张嘉琪 原创作品转载请注明出处 +<Linux内核分析>MOOC课程http://mooc.study ...

  4. HashMap相关总结

    1.HashMap:根据键值hashCode值存储数据,大多数情况下可以直接定位到它的值,但是遍历顺序不确定.所有哈希值相同的值存储到同一个链表中                         Ha ...

  5. HDU 2029 算菜价

    http://acm.hdu.edu.cn/showproblem.php?pid=2090 Problem Description 妈妈每天都要出去买菜,但是回来后,兜里的钱也懒得数一数,到底花了多 ...

  6. [置顶网]POWER 9为云与智能打造强大引擎

    POWER 9为云与智能打造强大引擎 关键字: 浪潮商用机器 POWER9 至顶网服务器频道 (文/董培欣): 从全球角度看,政治经济波动持续.逆全球化趋势抬头.技术加速变革商业等因素促使企业需要数字 ...

  7. 常用的cpl 命令 运行直接打开控制台的简单方法

    转载百度百科   工作中处理 windows机器 有时候 打开 网路修改ip地址特别繁琐,所以找了下 快速打开一些简单的控制台 能提高工作效率.   (Control Panel extension) ...

  8. PSP(3.16——3.22)以及周记录

    3.17 13:30 14:45 15 60 讨论班 A Y min 14:50 17:05 5 130 得到设备 Cordova 蓝牙连接 A Y min 23:15 23:45 5 25 英语百词 ...

  9. images & Skeleton

    images & Skeleton image placeholder & loading ... skeleton.css https://github.com/dhg/Skelet ...

  10. python自动化之爬虫原理及简单案例

    [爬虫案例]动态地图里的数据如何抓取:以全国PPP综合信息平台网站为例  http://mp.weixin.qq.com/s/BXWTf5hmq8vp91ZvgaphEw [爬虫案例]动态页面的抓取! ...