hdu2059 龟兔赛跑 DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2059
虽然 知道是DP ,刚开始一直没有想出状态转移方程。
刚开始的思路就是定义dp[i]表示到达第i个加油站的最优时间,但是却一直在想其与在第i-1的加油站加油和不加油之间的转移关系
后来看别人的思路,觉得自己又弱了,应该是考虑和前面的所有加油站的关系
对于每一个站点i, 我们可以假设在j (0<=j<i) 满电出发,那么:
如果i到j的距离小于c, 就可以从j一直骑到i
如果i到j的距离大于c, 要骑一段蹬一段
状态转移方程就很好写了。
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
using namespace std;
double d[];
double dp[];
void init()
{
memset(d,,sizeof(d));
for(int i=;i<;i++)
dp[i]=; }
int main()
{
double l;
while(scanf("%lf",&l)!=EOF)
{ init();
int n;
double c,t;
double vr,v1,v2;
cin>>n>>c>>t;
cin>>vr>>v1>>v2;
for(int i=;i<=n;i++)
scanf("%lf",&d[i]);
d[]=;
d[n+]=l;
double s;
dp[]=;
for(int i=;i<=n+;i++)
for(int j=;j<i;j++)
{
s=d[i]-d[j];
if(s<=c)
dp[i]=min(dp[i],dp[j]+s/v1+t);
else
dp[i]=min(dp[i],dp[j]+c/v1+(s-c)/v2+t);
}
double t1=l/vr;
dp[n+]=dp[n+]-t;
if(t1>dp[n+]) cout<<"What a pity rabbit!"<<endl;
else cout<<"Good job,rabbit!"<<endl;
}
return ;
}
代码:
hdu2059 龟兔赛跑 DP的更多相关文章
- hdu2059 龟兔赛跑
hdu2059 龟兔赛跑 动态规划 题目描述: Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州 ...
- HDU2059 龟兔赛跑 【DP】
龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- dp入门 hdu2059 龟兔赛跑
龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- 龟兔赛跑(DP)
龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdoj 2059 :龟兔赛跑 (DP)[转]
转的别人的找了很多就这个比较好理解. Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下 ...
- HDU-2059龟兔赛跑(基础方程DP-遍历之前的所有状态)
Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能 ...
- 1-10假期训练(hdu-2059 简单dp)
题目一:传送门 思路:水题,模拟即可 题目二:传送门 思路:dp,决策每个充电站是否要充电.(决策只有搜索,DP两种解决方法) (1)考虑状态的个数,n+2个,因为除了n个还有位置0,终点len两种状 ...
- HDU 2056 龟兔赛跑 (DP)
题意:见题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2059 解题报告:以前一直没看出来这题是个DP题,知道是DP题就简单了 .首先要把起点和终点看成 ...
- hdu 2059 龟兔赛跑 (dp)
/* 把起点和终点比作加油站,那总共同拥有n+2个加油站了, 每次都求出从第0个到第j个加油站(j<i)分别在加满油的情况下到第i个加油站的最短时间dp[i], 终于的dp[n+1]就是最优解了 ...
随机推荐
- [cookie篇]从cookie-parser中间件说起
当我们在写web的时候,难免会要使用到cookie,由于node.js有了express这个web框架,我们就可以方便地去建站.在使用express时,经常会使用到cookie-parser这个插件. ...
- HTML的语义化,你需要深入了解
有关HTML的一些基础课程,很多网站都有讲,于我而言,真正实践起来,我只要求我能够让它表现出我所想要的结果即可.然而,这种要求,对于后期的维护与测试,真的是......想起日前我们所做的这个项目,那里 ...
- DPDK QoS之分层调度器
原创翻译,转载请注明出处. 分层调度器的时机主要体现在TX侧,正好在传递报文之前.它的主要目的是在每个网络节点按照服务级别协议来对不同的流量分类和对不同的用户的报文区分优先级并排序. 一.概述分层调度 ...
- centOS下调整swap
[root@localhost /]# mkdir swap [root@localhost /]# cd swap [root@localhost swap]# dd if=/dev/zero of ...
- VMware workstation转到vsphere解决办法
一.前因 上一篇http://www.cnblogs.com/cuncunjun/p/6611837.html 中提到,我想把本地的vmware workstation的虚拟机拷贝到服务器上,因为鄙人 ...
- 【转】一个工具类(可以控制多层嵌套的movieClip)
好多人也应该遇到和我一样的问题,当设计师给了我们一个多层嵌套的movieClip时,我们在写代码时无法将movieClip完全停止掉,主要是基于好多movieClip有深层嵌套,主时间轴不在最上层导致 ...
- 浓缩的才是精华:浅析GIF格式图片的存储和压缩
成文迪, 在Web前端摸爬滚打的码农一枚,对技术充满热情的菜鸟,致力为手Q的建设添砖加瓦. GIF格式的历史 GIF(Graphics Interchange Format)原义是"图像互换 ...
- 老李分享:《Linux Shell脚本攻略》 要点(四)
老李分享:<Linux Shell脚本攻略> 要点(四) 1.IP地址的正则表达式: [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 2. ...
- ReactJS入门2:组件状态
React组件可以简单看做是包含props和states的函数. 上一节总结了创建新组建和数据属性的传递.本节主要讲解组件的状态. React认为UI是不同状态的展现.在React中,开发者只需更新组 ...
- ElasticSearch 基本概念
Elasticsearch是一个接近实时的搜索平台,就是说从索引一个文档直到这个文档能够被搜索到有一个轻微的延迟,通常是一秒钟 集群 一个集群通常有一个或多个elasticsearch节点组成,给这些 ...