hdu2059 龟兔赛跑

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


简单DP

我们以供电站划分阶段。

设f[i]表示到达第i个供电站的最小耗时。

则f[i] = min{ f[j] +cost[j->i] +  T } j<i

T 表示在第j个供电站充满电耗时。(将起点也设为供电站,因起点已充满电,所以起点是T为零)

cost[j->i]:

    if   dist[j->i] > C  then   

                                      cost[j->i] = dist[j->i] / v1

                              else 

                                      cost[j->i] = C / v1 + (dist[j->i] - C) / v2


最后比较 f[n] 和 L / V 即可。

你可能感兴趣的:(hdu2059 龟兔赛跑)