【蓝桥杯集训·每日一题2025】 AcWing 5539. 牛奶交换 python

embedded/2025/3/11 3:41:30/



AcWing 5539. 牛奶交换

Week 3
3月6日

题目描述

农夫约翰的 N N N 头奶牛排成一圈,使得对于 1 , 2 , … , N − 1 1,2,…,N−1 1,2,,N1 中的每个 i i i,奶牛 i i i 右边的奶牛是奶牛 i + 1 i+1 i+1,而奶牛 N N N 右边的奶牛是奶牛 1 1 1

i i i 头奶牛有一个容量为整数 a _ i a\_i a_i 升的桶。

所有桶初始时都装满了牛奶。

每一分钟,奶牛都会根据一个字符串 s 1 s 2 … s N s_1s_2…s_N s1s2sN 传递牛奶,该字符串仅由字符 LR 组成。

当第 i i i 头奶牛至少有 1 1 1 升牛奶时,如果 s i = s_i= si=L,她会将 1 1 1 升牛奶传递给她左边的奶牛,如果 s i = s_i= si=R,她会将 1 1 1 升牛奶传递给右边的奶牛。

所有交换同时发生(即,如果一头奶牛的桶是满的,送出 1 1 1 升牛奶的同时,也收到 1 1 1 升牛奶,则她的牛奶量保持不变)。

如果此时一头奶牛的牛奶量超过了桶的容量 a i a_i ai,则多余的牛奶会损失。

农夫约翰想要知道:经过 M M M 分钟后,所有奶牛总共还余下多少牛奶?

输入格式

输入的第一行包含 N N N M M M

第二行包含一个字符串 s 1 s 2 … s N s_1s_2…s_N s1s2sN,仅由字符 LR 组成,表示每头奶牛传递牛奶的方向。

第三行包含整数 a 1 , a 2 , … , a N a_1,a_2,…,a_N a1,a2,,aN,为每个桶的容量。

输出格式

输出一个整数,为 M M M 分钟后所有奶牛总共余下的牛奶量。

数据范围

1 ≤ N ≤ 2 × 1 0 5 1 \le N \le 2 \times 10^5 1N2×105,
1 ≤ M ≤ 1 0 9 1 \le M \le 10^9 1M109,
1 ≤ a i ≤ 1 0 9 1 \le a_i \le 10^9 1ai109

输入样例1:
3 1
RRL
1 1 1
输出样例1:
2
样例1解释

奶牛 2 2 2 3 3 3 互相传递一升牛奶,因此她们的牛奶得以保留。

当奶牛 1 1 1 将牛奶传递给奶牛 2 2 2 时,奶牛 2 2 2 的桶会溢出,从而一分钟后损失了一升牛奶。

输入样例2:
5 20
LLLLL
3 3 2 3 3
输出样例2:
14
样例2解释

每头奶牛都将一升牛奶传递给左边的奶牛,并从右边的奶牛那里获得一升牛奶,因此无论经过多长时间所有牛奶都会被保留下来。

输入样例3:
9 5
RRRLRRLLR
5 8 4 9 3 4 9 5 4
输出样例3:
38
样例3解释

初始时,共有 51 51 51 升牛奶。

5 5 5 分钟后,奶牛 3 3 3 6 6 6 7 7 7 将分别损失 5 5 5 3 3 3 5 5 5 升牛奶。

因此,总共还剩下 38 38 38 升牛奶。


模拟


AC _code

python">n, m = map(int, input().split())  
s = input()  
s += s  
a = list(map(int, input().split()))  
ans = sum(a)  
a += a  
# 找到第一个不连续的位置  
k = 0  
while k < n and s[k] == s[k + 1]:  k += 1  
if k < n:  i = k + 1  while i <= n:  res = 0  j = i  while j <= k + n and s[j] == s[i]:  res += a[j]  j += 1  if s[i] == 'R':  res -= a[j - 1]  else:  res -= a[i]  ans -= min(m, res)  i = j  
print(ans)

END
如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给博主点个关注 谢谢


http://www.ppmy.cn/embedded/171658.html

相关文章

AF3 squeeze_features函数解读

AlphaFold3 data_transforms 模块的 squeeze_features 函数的作用去除 蛋白质特征张量中不必要的单维度&#xff08;singleton dimensions&#xff09;和重复维度&#xff0c;以使其适配 AlphaFold3 预期的输入格式。 源代码&#xff1a; def squeeze_features(protein):&qu…

MySQL 实战 4 种将数据同步到ES方案

文章目录 1. 前言2. 数据同步方案 2.1 同步双写2.2 异步双写2.3 定时更新2.4 基于 Binlog 实时同步 3. 数据迁移工具选型 3.1 Canal3.2 阿里云 DTS3.3 Databus3.4 Databus和Canal对比3.4 其它 4. 后记 上周听到公司新同事分享 MySQL 同步数据到 ES 的方案&#xff0c;发现很有…

数据结构(树)

数据结构&#xff08;树&#xff09; 树的基本概念 样子 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下…

《AI大模型专家之路》No.2:用三个模型洞察大模型NLP的基础能力

用三个模型洞察大模型NLP的基础能力 一、项目概述 在这个基于AI构建AI的思维探索项目中&#xff0c;我们实现了一个基于BERT的中文AI助手系统。该系统集成了文本分类、命名实体识别和知识库管理等功能&#xff0c;深入了解本项目可以让读者充分了解AI大模型训练和推理的基本原…

firewalld富规则配置黑名单

1. 屏蔽指定 IP 地址 firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.100 reject"参数说明 --permanent:将规则永久保存,重启后仍然生效。--add-rich-rule:添加一条富规则。rule family=ipv4:指定规则适用于 IPv4 地址。…

Meta 计划在 Llama 4 中引入改进的语音功能,接近双向自然对话

据英国《金融时报》3 月 7 日报道&#xff0c;Meta 首席产品官 Chris Cox 透露&#xff0c;Llama 4 将是一个 “全能模型”&#xff0c;语音功能将是原生的1。关于 Meta 计划在 Llama 4 中引入改进语音功能并接近双向自然对话&#xff0c;具体情况如下1&#xff1a; 功能特点 原…

LeetCode1137 第N个泰波那契数

泰波那契数列求解&#xff1a;从递归到迭代的优化之路 在算法的世界里&#xff0c;数列问题常常是我们锻炼思维、提升编程能力的重要途径。今天&#xff0c;让我们一同深入探讨泰波那契数列这一有趣的话题。 泰波那契数列的定义 泰波那契序列 Tn 有着独特的定义方式&#xf…

力扣-股票买入问题

dp dp元素代表最大利润 f[j][1] 代表第 j 次交易后持有股票的最大利润。在初始状态&#xff0c;持有股票意味着你花钱买入了股票&#xff0c;此时的利润应该是负数&#xff08;扣除了买入股票的成本&#xff09;&#xff0c;而不是 0。所以&#xff0c;把 f[j][1] 初始化为负…