#贪心#洛谷 3615 如厕计划

题目传送门


分析

如果男生数目比女生数目多显然无解,在原队列的基础上考虑调换实际是将男生往前移

实际上不满意度就是最后一位女生后移了多少位,记女生为一,男生为负一,

运用数学归纳法证明只要后缀最小值不低于负一,那么一定存在一种方案,

实际上就是求出后缀最小值,并将其调整至不低于负一,那么每一段对于总和是否小于零分类讨论即可


代码

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
const int N=100011;
typedef long long lll;
lll SUM,now,a[N],n,m,ans=-1;
int len,sum[N],mn[N]; string str;
int main(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>n>>m;for (int i=1;i<=m;++i){cin>>str>>a[i],len=str.length();for (int j=len-1;~j;--j)if (str[j]=='M') --sum[i],mn[i]=mn[i]<sum[i]?mn[i]:sum[i];else ++sum[i];SUM+=sum[i]*a[i];}if (SUM<0){cout<<-1;return 0;}for (int i=m;i;--i){if (sum[i]>=0) ans=min(ans,now+mn[i]);else ans=min(ans,now+sum[i]*(a[i]-1)+mn[i]);now+=sum[i]*a[i];}cout<<-ans-1;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/739495.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

包装类数学类位运算

包装类&数学类&位运算 1 包装类 把基本数据类型包装成引用数据类型byte short int long float double char boolean voidByte Short Integer Long Float Double Character Boolean VoidVoidVoid类构造方法是私有的,所以不能创建对象。并且Void是一个最终类,没有子类。…

EtherCAT转Profinet网关配置说明第二讲:上位机软件配置

EtherCAT协议转Profinet协议网关模块(XD-ECPNS20),不仅可以实现数据之间的通信,还可以实现不同系统之间的数据共享。EtherCAT协议转Profinet协议网关模块(XD-ECPNS20)具有高速传输的特点,因此通过EtherCAT转Profinet网关实现数据传输和控制时速度的提升。在大规模的工业…

2024.7.6 鲜花

梅菲斯特——女王蜂 from K8He ラストチャンスに飢えたつま先が 踊り出すまま駆けたこの夜空 並のスタンスじゃ靡かない 星は宝石の憧れ 浮かぶ涙と汗は血の名残り 目の中でしか泳げなきゃ芝居 だけどステージが逃がさない いついつまでも憧れ 焦がれているよ I’ve never see…

C#学习笔记-事件

事件事件是类的一种成员,能够使类或对象具备通知能力。事件用于对象或类间的动作协调和信息传递。假设类A有某个事件,当这个事件发生时,类A会通知并传递事件参数(可选)给有订阅这个事件的类B,类B根据拿到的事件信息对事件进行响应处理。 事件模型 事件模型的5个组成部分:…

将nodejs迁移到D盘

参考双击安装,指定d盘查看文件夹查看环境变量,自动添加如下Path=D:\software\nodejs\打开cmd验证C:\Users\dogle>node -v v18.14.2C:\Users\dogle>npm -v 9.5.0C:\Users\dogle>echo %PATH% C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\sy…

bluez 入门

**核心模块**:位于系统的最底层,直接与蓝牙硬件进行交互。核心模块实现了蓝牙的基础协议如HCI (Host Controller Interface),并通过DBUS提供API给上层应用。 **服务守护进程(bluetoothd)**:作为系统的守护进程运行,它处理所有的蓝牙服务和配置,如设备配对、连接管理、配…

chrome 浏览器如何设置不保存表单信息

chrome 浏览器如何设置不保存表单信息如何关闭表单自动填充(测试环境Chrome浏览器) https://download.csdn.net/blog/column/7594878/100576004如何禁用谷歌浏览器中的表单自动填充功能? https://zh-cn.fairsyndication.com/222-how-to-disable-form-autofill-in-google-chr…

数字设计--CDC

异步信号与同步信号 同步信号 频率相同,相位相同的两个信号 频率相同,相位差一定的两个信号 不同频率的两个信号也可能是同步的,比如分频出来的两个信号 异步信号 频率不同的两个信号 频率相同但相位差不定的两个信号 跨时钟域就是要解决信号从异步信号之间传输的问题。 亚稳…

数字设计--亚稳态

亚稳态 FPGA 等数字设备中的所有寄存器都定义了信号时序要求----允许每个寄存器在其输入端正确捕获数据并产生输出信号。为确保可靠操作,寄存器的输入必须在时钟边沿之前的最短时间(建立时间 setup time 或 \(t_{su}\))和时钟边沿之后的最短时间(保持时间 hold time 或 \(t…

数字设计--门控时钟与时钟切换

门控时钟(ICG) 使用门控时钟的原因 芯片功耗组成中,大部分是由时钟树消耗掉的。因为这些时钟树在系统中具有最高的切换频率,而且有很多时钟buffer,并且为了最小化时钟延时,它们通常具有很高的驱动强度。此外,即使输入和输出保持不变,接收时钟的触发器也会消耗一定的功耗。…

ComfyUI进阶篇:ComfyUI核心节点(二)

ComfyUI核心节点(二) 前言: 学习ComfyUI是一场持久战。当你掌握了ComfyUI的安装和运行之后,会发现大量五花八门的节点。面对各种各样的工作流和复杂的节点种类,可能会让人感到不知所措。在这篇文章中,我们将用通俗易懂的语言对ComfyUI的核心节点进行系统梳理,并详细解释每…

题目集7~8

由于个人原因,最后两次题目集未提交,对自己的放纵感到愧疚,后期的补练我也会抽出时间完成这两道题 经过分析,题目集7,是在前面的基础上加上了一个新概念:互斥开关,以及模拟一种受控窗帘, 在我的想法,互斥开关便可当作两个普通开关去完成电路,窗帘则是新增一个用电器。…