hdu 2059 龟兔赛跑
来源:互联网 发布:阿里云ces加内存 编辑:程序博客网 时间:2024/05/16 09:18
hdu 2059 龟兔赛跑
题目大意:就是乌龟和兔子赛跑,总路程是 l, 兔子只能匀速跑 速度为 vr,但是乌龟用电动车跑的速度为 vr1,开始的时候电动车满电,可以跑 C 距离,然后要充电,充满要 t 时间,当电传动车没电时,只能以 vr2 的速度跑。这一段路上有 n 个充电站,每一个充电站离始点的距离是 s[i] ,求谁先到达。
解题思路:状态dp 。 以每个充电站作为判断点。
#include <iostream>#include<cstdio>#define inf 0xfffffusing namespace std;double Min(double x,double y){ return x<y?x:y;}int main(){ double l,vr,vt1,vt2,s[110],dp[110],len,time; int n; double c,t; while(scanf("%lf",&l)!=EOF) { scanf("%d%lf%lf",&n,&c,&t); scanf("%lf%lf%lf",&vr,&vt1,&vt2); for(int i=1;i<=n;i++) { scanf("%lf",&s[i]); } s[0]=0; s[n+1]=l; dp[0]=0; for(int i=1;i<=n+1;i++) { dp[i]=inf; for(int j=0;j<i;j++) { len=s[i]-s[j]; if(len>c) { time=c/vt1+(len-c)/vt2; } else { time=len/vt1; } time+=dp[j]; if(j>0) { time+=t; } dp[i]=Min(dp[i],time); } } if(dp[n+1]<l/vr) printf("What a pity rabbit!\n"); else printf("Good job,rabbit!\n"); } return 0;} // 这个题是 dp 的入门题 。画个图,一个一个状态去分析很简单就理解了。
0 0
- hdu 2059 龟兔赛跑
- HDU 2059 - 龟兔赛跑
- hdu 2059 龟兔赛跑
- HDU 2059 龟兔赛跑
- HDU 2059 龟兔赛跑
- hdu 2059 龟兔赛跑
- hdu 2059 龟兔赛跑
- hdu 2059 龟兔赛跑
- hdu 2059 龟兔赛跑
- hdu 2059 龟兔赛跑
- HDU 2059 龟兔赛跑
- hdu 2059 龟兔赛跑
- HDU 2059 龟兔赛跑
- hdu 2059 龟兔赛跑
- hdu 2059 龟兔赛跑
- HDU 2059 龟兔赛跑
- HDU 2059 龟兔赛跑
- HDU 2059 龟兔赛跑
- Java基础---StringBuffer
- HDOJ--1869--六度分离(用三种算法写的,希望能比较出来他们之间的区别)
- 高仿知乎日报(五)
- python *和**
- HDU-5402 Travelling Salesman Problem(模拟)
- hdu 2059 龟兔赛跑
- Java深度历险(五)Java泛型
- 指针和引用区别(More Effective_C++_1(基础))
- winform通过https与服务器进行通信
- lightoj 1032 - Fast Bit Calculations (数位DP)
- C++中数据类型的字节数
- hdoj 1598 【并查集加贪心】
- linux下网络编程send,recv,read,write的区别
- 过河问题