10.31 —— (VP)2023icpc济南

news/2025/10/31 19:11:54/文章来源:https://www.cnblogs.com/jjjxs/p/19180312

这把打得中规中矩,前期一道签到题出得有点慢了;最后一道铜牌题关键思路是对的,但还是做法有问题超时了。

\(D\) 纯签到

\(J\):每一次考虑排好一整个前缀,那么每次操作至少会让前缀长度加 \(2\),只需要选择 当前已拼好前缀的后一个数其后最右侧的比它小的数 做一次操作即可(手玩即可证明),这样最多只需要 \(\lfloor \frac{n}{2} \rfloor\) 次操作。

\(A\):卡了很久的一道题,最后构造出了一组很强的样例,排查出了问题。具体思路见官解。

\(G\):无解情况很好特判,只需要关注有解情况:对于 \(\forall j \in [1, \lfloor\frac{m}{2}\rfloor]\),将第 \(j\) 列与第 \(m - j + 1\) 列分到一组,这两列中 \(1\) 的数量一定不能超过 \(2\),否则无解;如果小于 \(2\),那么这两列无论哪种方案都会满足要求,不需要考虑;那么就只需要看恰好有 \(2\)\(1\) 的情况,显然最终每一列必须恰好有一个 \(1\),那么根据初始时两个 \(1\) 是否在同一列,就可以知道含有这 \(2\)\(1\) 的两行是必须都操作/不操作,还是必须只对某一行操作。于是我们可以用二分图染色解决这个问题:将每一行当作一个点,边权 \(0/1\) 分别代表两个端点是必须都操作/不操作,还是必须只对某一行操作。对于每个连通块,方案数只能是 \(0\)\(2\),取决于这个连通块内所有边是否均满足条件。所有连通块的方案数作乘法原理即为答案。注意特判 \(m\) 为奇数时中间一列的情况。

code

K. Rainbow Subarray

关键要想到将等差数列的偏移量提前处理掉:先将所有的 \(a_{i}\) 减掉 \(i\)(设为 \(a'\))。这样处理后就有一个重要的性质:\(a\) 中的一个子数组变成公差为 \(1\) 的等差数列,等价于将 \(a'\) 中的对应子数组变成全部相同的数(相当于操作后再将偏移量加回来)。这样,问题就变成了:现有最大操作次数 \(k\),考虑所有子数组,求在最大操作次数以内可以变成全相同数的子数组的最大长度。

这个也是经典结论了 —— 都变成序列的中位数一定更优(长度为偶数,上中位数和下中位数之间的数都可以)。操作次数等价于求子数组后一半大 \(-\) 前一半大的值

蒟蒻赛时写了二分+\(FHQ\),复杂度带两个 \(\log\) 不出意外地 \(T\) 了。事实上二分可以写成双指针(因为在某个子数组中添加一个数,操作次数一定单调不减),通过滑动窗口的方式维护上述值,进而可以省掉一个 \(\log\) 通过。看来还是经验不足qwq。

使用 \(FHQ\),当然是因为它强大的功能:既可以查询维护集合的第 \(k\) 大,也可以查询任何一个数在维护集合中的排名。结合这两个功能,就能够实时维护子树组内添加或者删除一个数时,子数组后一半大 \(-\) 前一半大的值。具体实现写得很麻烦,还要根据区间长度的奇偶性分类讨论,细节见代码。

code

M. Almost Convex

待补

code

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

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

相关文章

MIM + PEFT + MLP + Q

零样本学习------稳健的语义特征能力----富含语义信息的训练数据集----使用SOS数据集(主要关注语义重要区域内的低频特征) 密集预测任务-----处理高频细节--------擅长密集预测的与训练模型----使用COS模型(善于识别…

《程序员修炼之道 - 从小工到专家》阅读笔记2

3 石头汤与煮青蛙 两个方面,一还是软件的熵当中的含义,喜欢书里面的这段话:大多数的项目的拖 延都是一天一天发生的,系统一个特性一个特性的偏离其规范.一个又一个的补丁被打 到某段代码上,直到最初的代码一点没有留下…

《程序员修炼之道 - 从小工到专家》阅读笔记3

5 你的知识资产 关于学习的一个章节,提到了不少如何学习,把学习知识作为投资一样看待,分析的也 很在理.自认为在这方面还是赶上了书中的要求,不然也不会看到这本书了_,学习是 一个过程,不会有立杆见影的效果,当然我们不…

《程序员修炼之道 - 从小工到专家》阅读笔记1

1.我的源码让猫给吃了 不要寻找借口,从自身找原因 2.软件的熵 一句话:不以善小而不为,勿以恶小而为之. 从初期就要做好规范,不要因为是poc这样的前提而放松对代码的规范,现在的项目就有这种问题,初期的时候有人认为(自…

Java流程控制——break,continue,goto

Java流程控制——break,continue,gotobreak,continue语句在任何循环语句的主体部分,都可以使用break语句控制循环流程。 break用于强制退出循环,不执行循环中剩余的语句。(在switch中也使用) continue语句用于在循…

读《代码大全2》第三部分有感

《代码大全2》第三部分“变量”,看似聚焦于软件开发中最基础的“变量”概念,却以极致的细节与深度,打破了我对“变量只是存储数据的容器”的浅层认知。这部分从变量使用的常规问题、命名规则,到基本与不常见数据类…

A History of Large Language Models阅读心得(1)

https://gregorygundersen.com/blog/2025/10/01/large-language-models/ 为什么要word embedding? 如果不对词汇进行embedding,而是直接基于词语去统计自然语言数据的话,会出现数据稀疏的问题(data sparsity)。因为…

20232324 2025-2026-1 《网络与系统攻防技术》实验四实验报告

20232324 2025-2026-1 《网络与系统攻防技术》实验四实验报告1.实验内容 1.1实验目标通过实操掌握恶意代码分析、逆向工程及网络取证的核心方法,理解恶意代码的特性、反分析技术与攻击逻辑,明晰僵尸网络机制及 IRC 协…

【Python 基础】第 2 期:环境搭建

在开始编写 Python 代码前,还需要搭建 Python 的开发环境。电脑是没办法直接读懂 Python 代码的,而是需要一个解释器,实时把代码翻译成字节码,字节码再转换成 0 和 1,电脑就能读懂了。 Python 的运行过程就是翻译…

revit api 对话框taskdialog 和maindialog

revit api 对话框taskdialog 和maindialogpublic Autodesk.Revit.UI.Result Execute(ExternalCommandData commandData,ref string message, Autodesk.Revit.DB.ElementSet elements) {Application app = commandData.…

YOLO算法原理详解系列 第001期-YOLOv1 算法原理详解 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

revit api structure type判断

revit api structure type判断通过StructuralType区分结构柱,结构梁,结构支撑和独立基础public void GetStructuralType(FamilyInstance familyInstance) {string message = "";switch (familyInstance.St…

读《代码大全2》第二部分有感

《代码大全2》的第二部分“高质量的代码”,宛如一位严苛的工匠在传授“打磨技艺”的精髓。如果说第一部分是为软件构建“打地基”,那这部分便是教我们如何用精准的手法,将“砖块”(代码)砌成坚固且美观的“墙体”…

读《代码大全2》第一部分有感

翻开《代码大全2》,第一部分“奠定基础”便像一把精准的钥匙,打开了我对软件构建认知的新大门。这部分没有陷入复杂的代码细节,而是从宏观视角切入,将软件开发的底层逻辑与核心原则娓娓道来,让我对“如何做好软件…

Modbus协议存储区学习笔记

于我而言,风光无限是你,跌落尘埃也是你,重要的是你,而不是怎样的你。——《天官赐福》1️⃣ 核心思想:通信 = 数据交互 首先,我们要明白一个最基本的道理:所有通信的本质,都是在交换数据!在Modbus协议里,设备…

CF1168C And Reachability

比较唐的思路是相同位上相邻为 \(1\) 的数连边,看能否从 \(x\) 走到 \(y\) 即可。 你发现这样不太好做,我们写个 DP,设 \(f_{i, j}\) 表示能到 \(i\) 这个点且 \(< i\) 第 \(j\) 位为 \(1\) 的数是哪一个(最大的…

分布式专题——32 BIO、NIO编程与直接内存、零拷贝深入辨析 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

LuatOS GNSS定位调试步骤解析:一步步实现精准定位

精准的GNSS定位是众多物联网项目的基础。本文将对LuatOS GNSS定位调试的各个步骤进行深度解析,帮助开发者系统性地掌握调试流程,让您的项目能够快速、稳定地实现精准定位需求。 一、GPS 工作原理简介 1.1 GPS 技术的…

AI元人文:从分野到纠缠——一种基于值动力学的统一视角

AI元人文:从分野到纠缠——一种基于值动力学的统一视角 一、 导言:超越分野,探寻谱系 我们习惯于用“模型”来框定理解世界的范式,无论是“主客二值”还是“三值纠缠”,这种命名本身已然暗示了一种分野。然而,智…

《代码大全》读后感:以构建为核心,搭建团队协作的桥梁

从团队管理视角阅读《代码大全 2》第一章,我收获的是 “如何通过规范构建流程提升团队效率” 的启发。书中指出 “软件构建是团队协作的核心环节”,不同角色的工作最终都会汇聚到构建阶段,这让我意识到,团队协作的…