通篇基本都“借鉴”的。发上来为止只能说看懂了,动态规划真让我自己用还是有点力不从心。看来要停一段时间先去刷刷算法了。
#include <iostream>
using namespace std;
#define m 10000000
double Yi(double a, double b)
{
return a < b ? a : b;
}
int main()
{
double sum_distance;
int num;
double distance, time;
double vr, vt1, vt2;
double Lu[101], Hui[101];
while (cin >> sum_distance >> num >> distance >> time >> vr >> vt1 >> vt2)
{
double t_t;
double tr = sum_distance/vr;
Lu[0] = Hui[0] = 0, Lu[num + 1] = sum_distance;
for (int i = 1; i <= num; i++)
cin >> Lu[i];
for (int i = 1; i <= num + 1; i++)
{
double min_t = m;
for (int j = 0; j < i; j++)
{
double L = Lu[i] - Lu[j];
if (L > distance)
t_t = distance/vt1 + (L - distance)/vt2;
else
t_t = L/vt1;
if (j)
t_t += time;
min_t = Yi(min_t, Hui[j] + t_t);
}
Hui[i] = min_t;
}
cout << (tr < Hui[num + 1] ? "Good job,rabbit!\n" : "What a pity rabbit!\n");
}
return 0;
}