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

洛谷 P3615

有一个混厕和一个女厕以及 \(2n\) 个男/女士排队。若女厕为空,则最前面的女士会进入;队头的人会进入他能进的厕所(女性优先进女厕。)

每个人需要在厕所待 \(1min\)(切换不算时间)。你可以重排这个队列,使得这些人能在 \(n\) 的时间内解决完。并且要最小化一个人后移位置的最大值。

\(n \le 10^{18}\),输入是将给定 \(n, m, s_i, k_i(i \le m),\) 队列为 \(k_i\)\(s_i\) 按顺序拼到一起。

先考虑如何判断一个序列受否合法。首先男士数量要 \(\le n\)

不难发现,每时每刻厕所都要是满的。如果出现女厕为空,但没有女的了就寄了,也就是若出现了没有女士但有 \(\ge 2\) 个男士就寄了(一个可以进混厕,因为女士优先进女厕所以是对的)。

倒着考虑,若有一个后缀男士数 $\ge $ 女士数 $ + 2$ 就不行了,可以使用数学归纳法,最后肯定会剩两个男的。对于所有后缀均满足即可。


再贪心的考虑重排的方案:显然是男士前移,女士后移,且一定是最后的男士往前移。所以设一个后缀的男士数为女士数 \(+ k\),则需要最后 \(k - 1\) 个男士需挪到前面去(也就是有女士要从这 \(k - 1\) 个男士前挪到后面)。则答案为 \(\max \{ k\} - 1\),需对 \(0\)\(\max\)

要想到序列合法的条件(倒着考虑,剩下来的人少好分析),以及重排队列的最优策略。又一次没想到 正难则反

http://www.jsqmd.com/news/30500/

相关文章:

  • 蒟蒻的S游记碎碎念
  • 简单五子棋对战(AI生成)
  • 扬贺扬国产DDR4、国产NAND存储、国产EMMC存储
  • 概率论练习
  • 【python刷题记录】移动零-双指针-简单
  • [linux]记账工具-监控用户活动
  • 002 vue3-admin项目的目录及文件说明之public目录
  • Day11CSS特性
  • [GDB] GDB-Dashboard: GDB可视化工具
  • kettle调度系统-kettle spoon方式调度,强大兼容性,支持各种版本kettle
  • Django 项目开发整体步骤(0 开始)
  • [GDB] cgdb: GDB 可视化工具
  • Maya 2025软件超详细下载安装教程(附安装包和激活步骤)
  • AI元人文构想:基于价值原语和三值纠缠的权衡
  • 一款基于 .NET WinForm 开源、轻量且功能强大的节点编辑器,采用纯 GDI+ 绘制无任何依赖库仅仅100+Kb!
  • 10-31 题
  • Windows install MiniConda3
  • 109.Redis的geospatial和XXL-JOB 分布式任务调度平台整理
  • 我的神奇题目
  • STM32学习之概念——仿真器、调试器、下载器
  • 洛谷 P3273
  • docker compose.yaml配置
  • A39C-T400A22D1a Lora通讯模块的命令配置示例记录
  • 好久没来了
  • 【入门】使用Node.js开发一个MCP服务器
  • Multisim保姆级图文下载安装教程包含下载、安装、汉化、激活
  • AgenticSeek:完全本地的AI助手,保护隐私的智能代理
  • CSP-S 2025 题解
  • Day30-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\annotation\Proxy
  • JMeter生包