HDU 2059 龟兔赛跑 DP

原创 2013年12月01日 20:15:06

早上蓝桥杯就有这题,做了两小时没做出来,结果一共才做了五题,哭瞎了,又被虐QAQ

DP.....DP..........DP我还傻傻的模拟。T T

哥哥竟然被杭电第11页水题虐了!!!


---------------------------------------------------被虐的分割线---------------------------------------------------

传送门 :http://acm.hdu.edu.cn/showproblem.php?pid=2059

中文题不说题意

将起点和终点也当做发电站,这样就避免了两种情况的讨论

设dp[i]为设dp[i]为到达第i个发电站的最小时间,初始的时候为0,

dp[i]=min(dp[j] + t(i,j))  t(i,j)为从j充满电直接到i的时间。

#include<cstdio>
#include<algorithm>
using namespace std;
const int MAXN=101;
const int INF=999999;
int main()
{
	double L;
	int N;
	double C,T;
	double vr,vt1,vt2;
	while(~scanf("%lf",&L))
	{
		double dis[MAXN];
		scanf("%d",&N);
		scanf("%lf%lf",&C,&T);
		scanf("%lf%lf%lf",&vr,&vt1,&vt2);
		for(int i=1;i<=N;i++)
			scanf("%lf",&dis[i]);
		
		dis[0]=0;//起点存入
		dis[++N]=L;	//终点存入
		double dp[MAXN]={0};    //设dp[i]为到达第i个发电站的最小时间,初始的时候为0
							//dp[i]=min(dp[j] + t(i,j)) t(i,j)为从j充满电到i的时间
		
		for(int i=1;i<=N;i++)
		{
			dp[i]=INF;		//每个点一开始设为无穷大~
			for(int j=0;j<i;j++)
			{
				double time=0;	
				double len=dis[i]-dis[j];
				if( C >= len )			//分情况讨论,C为充满电一次滑行的距离
					time=dp[j]+len/vt1;
				else
					time=dp[j]+ C/vt1+(len-C)/vt2;
				
				if(j!=0)		//一开始就充满电不需要时间
					time+=T;
				dp[i]=min(dp[i],time);    //每次取最小
			}
		}
		double tr=L / vr;	//兔子的时间
		if(tr <dp[N])
			printf("Good job,rabbit!\n");
		else
			printf("What a pity rabbit!\n");
	}
}


hdu 2059 龟兔赛跑 DP

龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...

hdu 2059 龟兔赛跑 DP

龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi...

HDU 2059 龟兔赛跑 (DP)

龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub...

HDU 2059 龟兔赛跑(DP,经典题目)

龟兔赛跑 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm...

HDU-2059龟兔赛跑(基础方程DP-遍历之前的所有状态)

Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,...

HDU2059 龟兔赛跑 DP问题

Problem Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击——赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,...

ACM-DP之龟兔赛跑——hdu2059

龟兔赛跑 hdu2059 DP

hdu2059DP之龟兔赛跑

思路:定义从i->j为在第i个站点充完电直接到达第j个站点(假设终点为第n+1个站点),i可以使小于j的任何站点,j从1增加到第n+1,所以time[n+1]=min(time[n+1],time[i...

hdu2059--龟兔赛跑(dp)

Description 据说在很久很久以前,可怜的兔子经历了人生中最大的打击――赛跑输给乌龟后,心中郁闷,发誓要报仇雪恨,于是躲进了杭州下沙某农业园卧薪尝胆潜心修炼,终于练成了绝技,能够毫不休息得以...

hdu 2059 龟兔赛跑 (dp)

这题dp一直以来都不知道怎么做,今天挑战了下,于是推倒出怎么做了,太开心了。 其实只一维的dp就ok了,每次到一个发电站,从开始到这个发电站扫一遍,都将起点看看做充电了,肯定会问我那没充电的情况呢?呵...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 2059 龟兔赛跑 DP
举报原因:
原因补充:

(最多只允许输入30个字)