额,发现自己有点笨了,这道题实际上是在网上看了别人的思想才做的
这道题目的大概就是乌龟和兔子赛跑,乌龟有电动车和充电站
电动车有电的情况下是vt1 m/s,没电的情况下是vt2 m/s 每次充电花费time s,每次充满电可以走C米
路上有N个充电站,乌龟可以选择充电或者不充电,兔子一直以恒定的速度vr m/s跑,求出来乌龟所用的最少时间和兔子时间比较
每次求出从0到第j充电站是充满电的情况下,到第I个充电站所用的时间
输入
输出100 3 20 5 5 8 2 10 40 60 100 3 60 5 5 8 2 10 40 60
Good job,rabbit! What a pity rabbit!
#include<stdio.h>
const int MAX=101;
int main()
{
int l,n,c,time,vr,vt1,vt2,a[MAX];
double tr,temp=0,t[MAX];
while(scanf("%d",&l)!=EOF)
{
scanf("%d%d%d",&n,&c,&time);
scanf("%d%d%d",&vr,&vt1,&vt2);
a[0]=0;
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
a[n+1]=l;
t[0]=0;
tr=l*1.0/vr;
for(int i=1;i<=n+1;i++)
{
double min=999999999;
for(int j=0;j<i;j++)
{
int x=a[i]-a[j];
if(x<c)
{
temp=x*1.0/vt1;
}
else
temp=(c*1.0)/vt1+((x-c)*1.0)/vt2;
if(j!=0)
temp+=time;
if(min>t[j]+temp)
min=t[j]+temp;
}
t[i]=min;
}
if(t[n+1]>tr)
printf("Good job,rabbit!\n");
else
printf("What a pity rabbit!\n");
}
}