upd
This commit is contained in:
18
algorithms/labs/lab8/code/dp/2.py
Normal file
18
algorithms/labs/lab8/code/dp/2.py
Normal file
@@ -0,0 +1,18 @@
|
||||
def min_cost_to_win(n):
|
||||
dp = [[0] * (n + 2) for _ in range(n + 2)]
|
||||
for length in range(2, n + 1):
|
||||
for i in range(1, n - length + 2):
|
||||
j = i + length - 1
|
||||
best = 10**9
|
||||
for p in range(i, j + 1):
|
||||
left = dp[i][p - 1] if p > i else 0
|
||||
right = dp[p + 1][j] if p < j else 0
|
||||
best = min(best, p + max(left, right))
|
||||
dp[i][j] = best
|
||||
return dp[1][n]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print(min_cost_to_win(1))
|
||||
print(min_cost_to_win(2))
|
||||
print(min_cost_to_win(10))
|
||||
Reference in New Issue
Block a user