HD2059龟兔赛跑(DP)
题目链接
直接拿来当贪心做了=_=,然后就懵逼了
动态规划,本弱真没想到=_=
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const double eps = 0.000001;
const int INF = 0xffffff;
int station[];
double dp[];
int l, n, c, t, vr, vt1, vt2;
double get_time(int s, int tempc)
{
double gtime = ;
if(s > tempc)
{
gtime += 1.0 * tempc / vt1;
gtime += (s - tempc) * 1.0 / vt2;
}
else
{
gtime += s * 1.0 / vt1;
}
return gtime;
}
int is_chong(int s, int tempc)
{
double chong_time = t + get_time(s, c);
double not_chong_time = get_time(s, tempc);
if(not_chong_time - chong_time > eps)
return ;
return ;
}
double get_min(double x, double y)
{
if(x - y > eps)
return y;
return x;
}
int main()
{
while(scanf("%d", &l) != EOF)
{
scanf("%d%d%d", &n, &c, &t);
scanf("%d%d%d", &vr, &vt1, &vt2);
for(int i = ; i <= n; i++)
scanf("%d", &station[i]);
station[n + ] = l;
double rtime = 1.0 * l / vr;
station[] = ;
dp[] = ;
for(int i = ; i <= n + ; i++)
{
dp[i] = INF;
for(int j = i - ; j >= ; j--)
{
double tempTime = ;
int s = station[i] - station[j];
if(s > c)
{
tempTime = 1.0 * c / vt1;
tempTime += (s - c) * 1.0 / vt2;
}
else
tempTime = s * 1.0 / vt1;
if(j)
tempTime += t;
dp[i] = get_min(dp[i], dp[j] + tempTime);
}
/*
int s = station[i] - station[i - 1];
if(s > tempc)
{
gtime += 1.0 * tempc / vt1;
gtime += (s - tempc) * 1.0 / vt2;
tempc = 0;
}
else
{
gtime += s * 1.0 / vt1; // 不知道什么时候手贱,这里把s写成了c,浪费了半个小时
tempc = tempc - s;
}
if(is_chong(station[i + 1] - station[i], tempc))
{
gtime += t;
tempc = c;
}
*/
}
//gtime += get_time(l - station[n], tempc);
if(dp[n + ] - rtime > eps)
printf("Good job,rabbit!\n");
else
printf("What a pity rabbit!\n");
}
return ;
}
HD2059龟兔赛跑(DP)的更多相关文章
- 龟兔赛跑(DP)
龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- hdoj 2059 :龟兔赛跑 (DP)[转]
转的别人的找了很多就这个比较好理解. Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下 ...
- hdu2059 龟兔赛跑 DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2059 虽然 知道是DP ,刚开始一直没有想出状态转移方程. 刚开始的思路就是定义dp[i]表示到达第i ...
- 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]就是最优解了 ...
- 8-11-Exercise
链接:第四次小练 A.POJ 3094 Quicksum 水题中的水题啊~ 直接上代码: #include <iostream> #include <cstdio> #in ...
- 【巧妙消维DP】【HDU2059】龟兔赛跑
龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu 2059 龟兔赛跑(dp)
龟兔赛跑 Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成 ...
- HDU 2059 龟兔赛跑(超级经典的线性DP,找合适的j,使得每个i的状态都是最好的)
龟兔赛跑 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status ...
随机推荐
- js的offsetWidth,offsetHeight,offsetLeft,offsetTop
js的offsetWidth,offsetHeight,offsetLeft,offsetTop
- list转datatable
/// <summary> /// 将泛类型集合List类转换成DataTable /// </summary> /// <param name="list&q ...
- [转]论acm与泡妞
abstract :本文从各个方面讨论了泡妞与做题之间的相似之处与不同点,尽量的站在一个公平的角度阐述这一问题,所得的研究成果填补了国内外的理论空白. - 泡了一个好妞就好像做了一道难题一样快感都是相 ...
- yii2权限控制rbac之菜单menu最详细教程
前面我们在博文 yii2搭建完美后台并实现rbac权限控制实例教程中完美实现了yii2的后台搭建和rbac权限控制,如果你还没有实现,请先看上文再回来参考本文,因为本文是在上文的基础上进行完善和补充. ...
- C#高级特性_Attribute
Attribute: 公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法和属性等.Attributes和Microsoft .NET ...
- less sass学习总结(——待续哦——)
一:less.sass是为了解决什么? 为什么要让css以编程语言来书写呢?
- linux 配置 crontab
linux中的crontab是定时用的,下面的cron服务就是定时器的意思 crontab -l 列举所有的cron服务 crontab -e 修改cron服务 crontab -r 删除cron服务 ...
- Java--剑指offer(1)
1.在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. a) 常规程序 ...
- Retrofit2 + OkHttp3设置Http请求头(Headers)方法汇总
在构建网络层时会遇到一个问题就是要手动配置Http请求的Headers,写入缓存Cookie,自定义的User-Agent等参数,但是对于有几十个接口的网络层,我才不想用注解配置Headers,目前网 ...
- 解决Eclipse项目图标上的红色感叹号,红叉
从外部导入了几个jar包发现工程上出现红叉,但展开又没有详细的指明任何错误,可能过如下几步: 1.检查Build Path中的各个依赖jar及library是否有warning的标志,若有,处理之: ...