1-10假期训练(hdu-2059 简单dp)
题目一:传送门
思路:水题,模拟即可
题目二:传送门
思路:dp,决策每个充电站是否要充电。(决策只有搜索,DP两种解决方法)
(1)考虑状态的个数,n+2个,因为除了n个还有位置0,终点len两种状态;
前一个状态可以推出后一个状态,所以可以得到循环的顺序外循环1--n,内循环i-1--0。
(2)状态转移方程:dp[i]=MIN(dp[i],dp[i]+x,dp[i]+y),x表示要充电,y表示不要充电。
(3)考虑x和y的求法:
如果j==0,只考虑x即可,因为第一次肯定充满电
如果j!=0,考虑x,y分为dis(i-j)>=c和dis(i-j)<c两种情况,分别计算就行(一开始就是这里被卡住了,
如果dis(i-j)>c只要将它分为两部分考虑,分别计算v1的速度耗时和v2速度耗时即可)。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn = ;
double MIN(double a,double b)
{
return a<b?a:b;
}
double dp[maxn],l[maxn]; //记录每次的时间,为浮点型。
int main(void)
{
double x,y,timtu,num,num2;
int len; //初始题中的变量均为整形,n个位置除外
int n,c,t;
int v,v1,v2;
int i,j;
while(~scanf("%d",&len))
{
scanf("%d%d%d",&n,&c,&t);
scanf("%d%d%d",&v,&v1,&v2);
for(i=;i<=n;i++) scanf("%lf",&l[i]);
l[]=;l[n+]=len;
for(i=;i<maxn;i++) dp[i]=INT_MAX;dp[]=; //初始化处理dp,比较min,所以初始化最大
timtu=len*1.0/v;
for(i=;i<=n+;i++)
{
for(j=i-;j>=;j--)
{
if(j==) //特殊情况
{
num=l[i]-l[];
if(num<=c) dp[i]=MIN(dp[i],dp[]+1.0*num/v1);
else
{
num2=1.0*c/v1;
num-=c;
num2+=1.0*num/v2;
dp[i]=MIN(dp[i],dp[]+num2);
}
}
else
{
x=t;num=l[i]-l[j];y=1.0*num/v2; //x表示需要充电,y表示不用充电。
if(num<=c) x+=num*1.0/v1;
else
{
x+=c*1.0/v1;
num-=c;
x+=num*1.0/v2;
}
dp[i]=MIN(dp[i],dp[j]+MIN(x,y));
}
}
}
if(dp[n+]>=timtu) printf("Good job,rabbit!\n");
else printf("What a pity rabbit!\n");
}
return ;
}
1-10假期训练(hdu-2059 简单dp)的更多相关文章
- HDU 1087 简单dp,求递增子序列使和最大
Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 ...
- hdu 2471 简单DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2571 简单dp, dp[n][m] +=( dp[n-1][m],dp[n][m-1],d[i][k ...
- 2018.10.14 NOIP训练 圣诞树(简单dp)
传送门 sbDP题. 曾经一直TLE不知道为什么. 这次发现输入有坑233. 代码
- HDU 1708 简单dp问题 Fibonacci String
Fibonacci String Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- hdu 1257 && hdu 1789(简单DP或贪心)
第一题;http://acm.hdu.edu.cn/showproblem.php?pid=1257 贪心与dp傻傻分不清楚,把每一个系统的最小值存起来比较 #include<cstdio> ...
- HDU - 1300 简单DP
题意:买珠子的方案有两种,要么单独买,价钱为该种类数量+10乘上相应价格,要么多个种类的数量相加再+10乘上相应最高贵的价格买 坑点:排序会WA,喵喵喵? 为什么连续取就是dp的可行方案?我猜的.. ...
- [hdu 1398]简单dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1398 看到网上的题解都是说母函数……为什么我觉得就是一个dp就好了,dp[i][j]表示只用前i种硬币 ...
- HDU 2059 【DP】
题意: 中文. 思路: 这题不是自己的思想. 当对第i个点的最优值进行求解的时候一定存在最后一个加油的点j.这里j直接枚举. 另外将0和n+1个加油站定义为起点和终点. dp需要加强训练. #incl ...
- Max Sum (hdu 1003 简单DP水过)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
随机推荐
- XHXJ's LIS(数位DP)
XHXJ's LIS http://acm.hdu.edu.cn/showproblem.php?pid=4352 Time Limit: 2000/1000 MS (Java/Others) ...
- java 操作zookeeper
java 操作zookeeper(一) 首先要使用java操作zookeeper,zookeeper的javaclient 使我们更轻松的去对zookeeper进行各种操作,我们引入zookeeper ...
- [z]cxf生成javaclient
\apache-cxf-3.1.6\bin>wsdl2java -client http://192.168.129.224:8000/PricingEngine?wsdl
- webstorm 打包angular Module build failed: Error: No PostCSS Config found
angular创建项目后,在webstorm中启动时,报出如题错误,奇怪的是我从命令行启动(ng server)是没有问题的,多方寻求无果,在网上看到过说要加一个配置文件,我不信.我觉得是我配置哪里有 ...
- mysql-mysqldump命令导出多个数据库结构(实战)
环境:windows server 2012 打开CMD命令行模式, >cd c:\Program Files\Mysql\Mysql 5.7.1\bin c:\Program Files\My ...
- .net中使用XPath语言在xml中判断是否存在节点值的方法
book.xml<?xml version="1.0" encoding="utf-8" ?> <bookstore> <boo ...
- 正则表达式 re sys os random time 模块
今天学习内容如下: 1.正则表达式 百度正则表达式在线测试,可以练习 正则表达式本身也和python没有什么关系,就是匹配字符串内容的一种规则.官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用 ...
- JAVA动手动脑及课后作业
1.查看其输出结果.如何解释这样的输出结果?从中你能总结出什么? 运行结果 true true false 原因 1)在Java中,内容相同的字串常量(“Hello”)只保存一份以节约内存,所以s0, ...
- Gulp应用场景
转自:Gulp教程之:Gulp能做什么,前端装逼为何要用它 我们先说说 平时web开发遇到的一些场景 和 苦恼无奈的情况: JavaScript和CSS的版本问题 我们都知道 JavaScript ...
- Business.Startup.Learning from Startup Mistakes at SpringSource
http://www.infoq.com/news/2014/07/startup-spring