Farmer John购买了三头奶头:Bessie、Elsie和Mildred,最初每头奶牛每天产出7加仑的牛奶。由于已经知道随着时间的推移奶牛的产奶量可能会发生变化,所以FJ将会在接下来的100天定期测量奶牛们的产奶量并记录下来。 记录的形式如下: 35 Bessie -2 14 Mildred +3 ... 第一个条目表示,在第35天,Bessie的产奶量比上次测量降低了2加仑 第二个条目表示,在第14天,Mildred的产奶量比上次测量增加了3加仑 Farmer John一天最多只能进行一次测量,由于FJ有点粗心大意,他的测量结果并不是按照时间顺序记下的。 为了保持奶牛们的积极性,FJ在牛棚的墙上会挂上目前产奶量最高的奶牛的照片(如果产奶量最高的奶牛有多头,那么他会挂出他们所有的照片)。 请计算出FJ需要更换墙上奶牛的照片的总天数。
时间: 2023-12-06 09:42:52 浏览: 245
首先,我们需要记录每头奶牛的当前产奶量,并在每次测量后更新它们的产奶量。我们可以使用一个字典来存储这些信息。
然后,我们可以遍历所有的测量记录,按照时间顺序更新每头奶牛的产奶量,并记录下每天产奶量最高的奶牛(或奶牛们)。
最后,我们统计有多少天产奶量最高的奶牛发生了变化,就是FJ需要更换墙上奶牛照片的总天数。
下面是Python代码实现:
```python
from collections import defaultdict
# 初始化每头奶牛的产奶量为7
cow_milk = defaultdict(lambda: 7)
# 记录每天最高产奶量的奶牛
max_cows = set()
# 读入测量记录
n = int(input())
for i in range(n):
day, cow, diff = input().split()
diff = int(diff)
# 更新奶牛的产奶量
cow_milk[cow] += diff
# 更新最高产奶量的奶牛
if cow_milk[cow] > cow_milk[max_cows[0]]:
max_cows = set([cow])
elif cow_milk[cow] == cow_milk[max_cows[0]]:
max_cows.add(cow)
# 统计有多少天产奶量最高的奶牛发生了变化
change_days = 0
prev_max_cows = set()
for day in range(1, 101):
# 当前最高产奶量的奶牛
cur_max_cows = set([cow for cow in cow_milk if cow_milk[cow] == max(cow_milk.values())])
# 如果当前最高产奶量的奶牛与之前不同,则天数加一
if cur_max_cows != prev_max_cows:
change_days += 1
prev_max_cows = cur_max_cows
print(change_days)
```
阅读全文