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 即可。