2022.12.02
与舍友四排玩了团体对抗的模式,练习赛就只有40分钟的剩余时间了。
来源:牛客网
牛牛有 nnn 个属性,第 iii 个属性的初始值为 aia_iai ,牛牛想把第 iii 个属性的值变为目标值 bib_ibib。
现在牛牛 2×n2 \times n2×n 种不同颜色的药丸(每种药丸都有无穷多个),吃一个药丸会产生一个效果。同种颜色的药丸效果相同,不同颜色的药丸效果不同。
每种颜色的药丸对应以下效果之一:
以上描述了 2×n2 \times n2×n 种效果,它们与 2×n2 \times n2×n 种颜色的药丸一一对应。
开始时牛牛并不知道药丸颜色与药丸效果的对应关系。若牛牛吃一个药丸,则会获得该颜色药丸对应的效果,并且知道该颜色的药丸对应的效果。
牛牛通过吃药丸来改变自己的属性值。求在最坏的情况下,牛牛要吃多少药丸才能将所有属性从初始值变为目标值。
(若初始时初始值均等于目标值,则不需要吃药丸,输出 0)
第一行输入一个正整数 1≤n≤1051 \le n \le 10 ^ 51≤n≤105 ,表示牛牛的属性数量。
接下来一行 nnn 个整数,第 iii 个整数 −109≤ai≤109-10 ^ 9 \le a_i \le 10 ^ 9−109≤ai≤109, 表示牛牛第 iii 个属性的初始值。
接下来一行 nn 个整数,第 ii 个整数 −109≤bi≤109-10 ^ 9 \le b_i \le 10 ^ 9−109≤bi≤109 表示牛牛第 iii 个属性的目标值。
输出一个整数 mmm,表示在最坏的情况下,牛牛要吃多少药丸才能将所有属性从初始值变为目标值。
示例1输入
2
1 3
1 4输出
5
说明
在样例中,牛牛有 2 个属性值分别为 1 3,目标值分别为 1 4。
在最坏情况下:
牛牛吃的第一个胶囊使得其第一个属性值下降 1,牛牛的属性值变为:0 3。此时牛牛肯定不会再吃该颜色的药丸了。
牛牛吃的第二个胶囊使得其第二个属性值下降 1,牛牛的属性值变为:0 2。此时牛牛肯定不会再吃该颜色的药丸了。
牛牛吃的第三个胶囊使得其第一个属性值增加 1,牛牛的属性值变为:1 2。牛牛的第一个属性值以及足够,此时牛牛肯定不会再吃该颜色的药丸了。
牛牛吃的第四个胶囊使得其第二个属性值增加 1,牛牛的属性值变为:1 3。
此时牛牛可以再吃一个同上颜色的药丸,使得其第二个属性值增加 1,变为 4。
共需要 5 个药丸。
示例2输入
3
1 1 4
5 1 4输出
10
每个(目标值 - 初始值)的绝对值 + 2,最后进行求和。
n = int(input()) # 属性值
list1 = list(map(int, input().split())) # 初始值
list2 = list(map(int, input().split())) # 目标值
res1 = 0
if list1 == list2: # 目标与初始值相同,输出0print(0)
else:for i in range(n):res1 += abs(list1[i] - list2[i]) + 2 # 每个(目标值 - 初始值)的绝对值 + 2print(res1)