设共有n+1个供电站,第0个供电站是起点。用distance[0..n]来存储供电站到起点的距离,用time[i]来存储在第i个供电站加满电后到终点的最短时间。充电站号i为状态,time[i]为状态的指标。
初始时设置time[i]为加满电后,直接到终点不再充电的时间,设t[i->j]为从供电站i充满电后跑至供电站j、中间不再充电所需时间,则有递推关系:
time[i] = min(time[i], min_{i<j<=n}(T+t[i->j]+time(j)))
然后运用动态规划算法,从time[n]开始计算,逐步向time[n-1],time[n-2]……计算。最后,time[0]即是乌龟到终点的最短时间。
原文:http://www.cnblogs.com/solunar-/p/7242300.html