K11720 Milk Measurement-B[USACO-2017-Dec-B]代码
时间: 2023-07-16 22:12:16 浏览: 168
USACO-Training-Website:我的USACO培训网站解决方案
以下是K11720 Milk Measurement-B[USACO-2017-Dec-B]的Python代码实现:
```
n, g = map(int, input().split())
cow_info = []
for i in range(n):
cow_info.append(list(input().split()))
# 按照时间顺序排序
cow_info.sort(key=lambda x: int(x[0]))
# 初始化奶量
milk = {g: 0}
# 记录最大奶量变化次数
change_times = 0
for i in range(n):
time, cow_id, milk_amount = cow_info[i]
milk_amount = int(milk_amount)
# 更新奶牛奶量
if cow_id in milk:
milk[cow_id] += milk_amount
else:
milk[cow_id] = milk_amount
# 计算当前最大奶量
max_milk = max(milk.values())
# 如果当前最大奶量与之前不同,则更新计数器
if max_milk != milk[g]:
change_times += 1
milk[g] = max_milk
print(change_times)
```
首先,我们读入输入的数据。然后按时间顺序排序,以便以正确的顺序处理每个奶牛。
接下来,我们初始化一个字典`milk`,其中键是奶牛的ID,值是奶量。我们还将字典初始化为只有一头奶牛(ID为`g`)的奶量为0。
然后,我们按顺序遍历每个奶牛的信息,更新`milk`字典中相应奶牛的奶量。计算当前最大的奶量,如果与之前的最大奶量不同,则更新计数器`change_times`并更新字典`milk`中`g`奶牛的奶量为当前最大奶量。
最后,输出计数器`change_times`即可。
阅读全文