AcWing--保险箱-->dp

发布时间:2024年01月18日

5408. 保险箱 - AcWing题库(python)

# 操作顺序不影响操作结果
# 从右往左进行操作 对于某一位操作时不会影响右边结果


# 输入
n=int(input())
a=list(map(int,input()))
b=list(map(int,input()))
# 创建dp列表
f=list([float('inf') for _ in range(3)] for _ in range(n+1))
f[n][1]=0

# dp状态 枚举每一次操作 每一次操作三种状态
# 从右往左
for i in range(n-1,-1,-1):
? ? # 每一次三种操作
? ? for j in range(3):
? ? ? ? for k in range (-9,10):
? ? ? ? ? ? for t in range(3):
? ? ? ? ? ? ? ? if a[i]+k+t-1-b[i]==(j-1)*10:
? ? ? ? ? ? ? ? ? ? f[i][j]=min(f[i][j],f[i+1][t]+abs(k))
result = min(f[0][0], f[0][1], f[0][2])
print(result)
?

文章来源:https://blog.csdn.net/weixin_74711824/article/details/135682457
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。