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文章来源:https://www.toymoban.com/news/detail-802966.html# 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://www.toymoban.com/news/detail-802966.html
到了这里,关于AcWing--保险箱-->dp的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!