PAST3H
PAST3H
H ハードルが置かれたコースを飛んだり飛ばなかったりして走る時の最短時間を求める。
地点xに至る最短時間を小さいxから順に求める。動的計画法 code:python
if 1:
if 0:
if 1:
L = 10
XS = []
T1, T2, T3 = 2, 2, 2
if 1:
L = 10
XS = []
T1, T2, T3 = 2, 4, 2
if 1:
L = 10
XS = []
T1, T2, T3 = 4, 2, 2
if 1:
L = 10
T1, T2, T3 = 2, 4, 4
for x in XS:
answer = 1e+99
# print(isHurdle)
def minUpdate(p, t):
# print("update?", p, t)
if p > L:
t = time + T1 // 2 + int((L - position - 0.5) * T2) + penalty
p = L
# print("updated")
fastestTimes = 1e+99 * (L + 1) for position in range(L):
minUpdate(position + 1, time + T1 + penalty)
minUpdate(position + 2, time + T1 + T2 + penalty)
minUpdate(position + 4, time + T1 + 3 * T2 + penalty)
# print(fastestTimes)