当前位置: 首页 > news >正文

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



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

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

相关文章:

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

AcWing 5539. 牛奶交换 Week 3 3月6日 题目描述 农夫约翰的 N N N 头奶牛排成一圈&#xff0c;使得对于 1 , 2 , … , N − 1 1,2,…,N−1 1,2,…,N−1 中的每个 i i i&#xff0c;奶牛 i i i 右边的奶牛是奶牛 i 1 i1 i1&#xff0c;而奶牛 N N N 右边的奶牛是奶牛 …...

Mybatis缓存机制(一级缓存和二级缓存)

前言 为什么要学习Mybatis 缓存机制&#xff1f; 学习Mybatis 缓存机制&#xff0c;可以有效解决 数据库的压力&#xff0c;提高数据库的性能。 例如&#xff1a;你要 对tb_user 表 &#xff0c;查询 所有用户的信息,并且多次查询所有用户信息。我们知道第一次查询表信息流…...

设计模式--单例模式

一、单例模式代码实现 public class DatabaseConnection {// 1. 私有静态实例变量private static DatabaseConnection instance;// 2. 私有构造函数&#xff0c;防止外部直接创建实例private DatabaseConnection() {// 初始化数据库连接System.out.println("Database con…...

ubuntu22.04本地部署OpenWebUI

一、简介 Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 AI 平台&#xff0c;旨在完全离线运行。它支持各种 LLM 运行器&#xff0c;如 Ollama 和 OpenAI 兼容的 API&#xff0c;并内置了 RAG 推理引擎&#xff0c;使其成为强大的 AI 部署解决方案。 二、安装 方法 …...

2025-3-7二叉树的线索化

一、中序线索化 代码其实就是和中序遍历相似&#xff0c;增加了两个标志位 ltag rtag。 完整的代码&#xff1a; 二、先序线索化&#xff1a; 三、后序线索化&#xff1a; 总结&#xff1a;其核心其实还是遍历算法的改造。 并且注意处理最后一个被访问的节点。...

以商业思维框架为帆,驭创业浪潮前行

创业者踏入商海&#xff0c;如同航海家奔赴未知海域&#xff0c;需有清晰的思维罗盘指引方向。图中“为什么—用什么—怎么做—何人做—投入产出”的商业框架&#xff0c;正是创业者破解商业谜题的密钥&#xff0c;从需求洞察到落地执行&#xff0c;为创业之路铺就逻辑基石。 …...

海思Hi3516DV300交叉编译opencv

OpenCV是一个开源的跨平台计算机视觉库&#xff0c;支持C、Python等多种语言&#xff0c;适用于图像处理、目标检测、机器学习等任务。其核心由C编写&#xff0c;高效轻量&#xff0c;提供实时视觉处理功能&#xff0c;广泛应用于工业自动化、医疗影像等领域。 1 环境准备 1…...

基于NIST后量子算法的混合加密系统

目录 基于NIST后量子算法的混合加密系统一、前言二、后量子密码学概述2.1 后量子密码学的背景2.2 NIST候选后量子算法 三、混合加密系统的设计原理3.1 混合加密的基本思想3.2 数学公式与证明3.3 混合加密系统的优势 四、工程实现与优化策略4.1 算法层面优化4.2 工程实现优化 五…...

uni-app 开发ios 使用testFlight 进行分发测试

一、生成ipa 首先你要生成一个ipa包,怎么生成这个包,可以在uniapp打包安卓和iOS包 二、上传到分发平台 在这里我使用的是Transporter ,当然你也可以看下其他分发平台 在mac电脑app store中下载Transporter,双击打开, 点击添加,将打包好的ipa文件放上去,注意打包的时…...

Node.js入门笔记2---下载安装Node.js

Node.js入门笔记2 Node.js下载并安装的步骤1.Node.js 环境的安装2. 区分 LTS 版本和 Current 版本的不同3.项目node管理版本工具4.Node.js 包管理工具5.MSI与ZIP文件格式的主要区别6. 选择好上面的内容&#xff0c;点击下载mis7. 环境配置 Node.js下载并安装的步骤 1.Node.js …...

基于微信小程序的超市购物系统+论文源码调试讲解

4 系统设计 超市购物系统的设计方案比如功能框架的设计&#xff0c;比如数据库的设计的好坏也就决定了该系统在开发层面是否高效&#xff0c;以及在系统维护层面是否容易维护和升级&#xff0c;因为在系统实现阶段是需要考虑用户的所有需求&#xff0c;要是在设计阶段没有经过…...

OpenCV视频解码实战指南

硬核解析OpenCV视频处理底层原理&#xff0c;从零实现高效视频解码流水线&#xff01;附赠FFmpeg调优参数和异常帧处理方案&#xff0c;建议收藏备用。 &#x1f4fa; 视频解码核心原理 视频容器 vs 编码格式 类型常见格式特点容器格式MP4/MKV/AVI/MOV存储封装格式&#xff0…...

Python的那些事第四十三篇:功能强大的测试框架pytest

pytest:功能强大的测试框架 摘要 本文旨在深入探讨 pytest 这一功能强大的测试框架。pytest 具有简单易用、功能丰富等特点,支持分布式测试、自动化测试用例发现等功能。本文将从 pytest 的基本概念、主要功能、使用方法等多个方面进行详细阐述,并通过具体的代码示例和表格…...

工程化与框架系列(23)--前端性能优化(下)

前端性能优化&#xff08;用户体验&#xff09; &#x1f3a8; 引言 用户体验&#xff08;UX&#xff09;性能优化是前端性能优化的重要组成部分。本文将探讨如何通过优化用户体验相关的性能指标&#xff0c;提升用户对应用的满意度&#xff0c;包括感知性能、交互响应、视觉…...

使用 Elasticsearch 进行集成测试初始化​​数据时的注意事项

作者&#xff1a;来自 Elastic piotrprz 在创建应该使用 Elasticsearch 进行搜索、数据聚合或 BM25/vector/search 的软件时&#xff0c;创建至少少量的集成测试至关重要。虽然 “模拟索引” 看起来很诱人&#xff0c;因为测试甚至可以在几分之一秒内运行&#xff0c;但它们实际…...

自然语言模型(NLP)介绍

一、自然语言模型概述 自然语言模型&#xff08;NLP&#xff09;通过模拟人类语言理解和生成能力&#xff0c;已成为人工智能领域的核心技术。近年来&#xff0c;以DeepSeek、GPT-4、Claude等为代表的模型在技术突破和应用场景上展现出显著优势。例如&#xff0c;DeepSeek通过…...

解决:Word 保存文档失败,重启电脑后,Word 在试图打开文件时遇到错误

杀千刀的微软&#xff0c;设计的 Word 是个几把&#xff0c;用 LaTex 写完公式&#xff0c;然后保存&#xff0c;卡的飞起 我看文档卡了很久&#xff0c;就关闭文档&#xff0c;然后 TMD 脑抽了重启电脑 重启之后&#xff0c;文档打不开了&#xff0c;显示 杀千刀的&#xff…...

Android进程间通信方式之AIDL

Android 进程间通信&#xff08;IPC&#xff09;有多种方式&#xff0c;其中 AIDL&#xff08;Android Interface Definition Language&#xff09; 是最常用的一种&#xff0c;特别适用于 客户端-服务端&#xff08;Client-Server&#xff09;模型&#xff0c;当多个应用或进程…...

基于MD5分块哈希的前端图片重复检测方案

一、需求背景 在Web应用中处理用户图片上传时&#xff0c;我们需要解决两个核心问题&#xff1a; 避免重复文件占用存储空间 提升上传效率减少带宽消耗 传统方案直接上传后校验&#xff0c;存在以下缺陷&#xff1a; 重复文件仍然消耗上传时间 服务器重复校验增加计算压力…...

【每日学点HarmonyOS Next知识】Web Header更新、状态变量嵌套问题、自定义弹窗、stack圆角、Flex换行问题

【每日学点HarmonyOS Next知识】Web Header更新、状态变量嵌套问题、自定义弹窗、stack圆角、Flex换行问题 1、HarmonyOS 有关webview Header无法更新的问题&#xff1f; 业务A页面 打开 webivew B页面&#xff0c;第一次打开带了header请求&#xff0c;然后退出webview B页面…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

JVM虚拟机:内存结构、垃圾回收、性能优化

1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...