3.6 CW 模拟赛 T3. 列表

news/2025/3/9 9:57:27/文章来源:https://www.cnblogs.com/YzaCsp/p/18757047

思路

题意

有一个长度为 2×n+12 \times n + 1 的整数列表 aa 初始恰好为 12×n+11 \sim 2 \times n + 1 的排列; 有一个集合 S\mathbb{S} 初始为空, 进行 n+1n + 1 次操作, 第 ii 次操作如下:
11. 选择列表最中间位置的数第 n+2in + 2 - i 个数, 从列表中删除该数字, 并将该删除的数字加入集合 S\mathbb{S}
22. 如果不是最后的第 n+1n + 1 次操作, 则再任选列表中的一个数字删除

操作结束后, 列表为空, 集合 S\mathbb{S} 包含了 n+1n + 1 个数字
你需要求出集合 S\mathbb{S} 里面的单个连续数字段的最大可能值
一个连续数字段指集合 S\mathbb{S} 的一个子集, 满足这个子集的数去重排序之后任意相邻两个数差全部都为 11

  • 定义操作 (约束) 和开销 / 收益, 要求最值化开销 / 收益
    • 模拟操作, 找性质
    • 将约束条件数学化
    • 最优化问题的瓶颈, 考虑找最优解的性质来处理
    • 枚举开销对应的值\((\)超过 \(x\) / 不大于 \(x\) / 长度为 \(x\)\()\) , 然后考虑对于这个值进行
      • 贪心
      • 判断合法性
    • 逐元素处理
      • 先找到统一的构造方式
      • 直接处理
      • 推导动态规划

肯定需要先模拟操作
对于数据 4 7 3 6 1 2 5 , 你枚举可能的最终 \(\mathbb{S}\)
不难观察到性质

第一次只能选 \(6\) , 第二次依据删除位置可以选 \(1, 3\) 中的一个, 第三次依据删除位置可以选 \(\cdots\)

分析之后发现形似这样的选择方式
pEtPVc8.png

只要在当前步数对应的区间中且不曾被选择过, 就可以被选择

但是这个思路还是太难以发现了
你注意到每次选择什么只关于删除点的位置在相对左还是相对右
但是删除左右都有不止一个选择, 不难发现贪心的删除那个以后一定取不到的即可

反正不管怎么样你必须得到这个结论
难啊难

得到这个结论之后, 我们考虑怎么判定最长连续数字段
想到枚举连续数字段之后, 判定连续数字段的合法性

因为我们可以有 \(n + 1\) 次操作, 每次我们贪心的选择最外层的钦定选择点, 把决策留到后面去
因此考虑按照 \(\min\{i, n - i + 1\}\) 来对必选数进行排序, 按序选择

什么时候不合法呢?
当对于一个点, 我们必不可能选到他, 那么值域区间 \([L, R]\) 无解
考虑怎么表示, 不妨记 \(p_{a_i} = \min\{i, n - i + 1\}\) , 那么如果 \(\sum_{i = L}^{R} [p_i \leq k] > k\) , 则无解
也就是说对于值 \(a_i\) , 其可能被后缀 \(p_{a_i}\) 个区间选择, 但是如果太多值不好分配, 那就挂了

总而言之, 形式化约束条件为 \(p_{a_i} = \min\{i, n - i + 1\}\) , 要求 \(\sum_{i = L}^{R} [p_i \leq k] \leq k\)
这个简单做一下可以用值域区间数据结构维护, 不赘述, 但是一定要知道高效维护往往需要形式化约束

然后发现合法值域区间的单调性, 双指针维护即可

总结

思路不对要赶紧换, 一般转化策略和直接模拟都要试一下

贪心思想: 把决策留给后面
区间问题考虑单调性

有些思想真的不好用语言来解释是怎么想到的, 怎么办

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

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

相关文章

Navicat 操作 MySql 修改表结构时保存后直接卡死无反应问题

一、问题如下:在Navicat中调整表结构,添加新的字段。之后保存的时候就一直显示正在保存,等了一会儿也一直没有反应,点关闭也停止不了保存操作,就一直卡着。二、问题解决1、查看当前的进程列表: show processlist会发现有等待的进程:这些进程状态为Waiting for table met…

SAP 3M胶带:行业解决方案的革新者

SAP 3M胶带:行业解决方案的革新者 在胶带加工行业,SAP 3M胶带凭借其卓越的性能和广泛的应用领域,成为了众多企业的首选。而SAP与3M的结合,更是将科技与创新完美融合,为行业带来了全新的解决方案。库存管理痛点解决 胶带加工行业的多变性使得库存管理成为了一大痛点。然而,…

OPC DA获取DCS数据(配置DCOM)

OPC DA配置操作手册配置完成后,访问远程ip,就能获取到服务 C#使用Interop.OPCAutomation采集OPC DA数据,支持订阅(数据变化)、单个读取、单个写入、断线重连 qq:505645074

Hyper-V虚拟机黑屏还可能与虚拟机的显示配置有关,需要检查哪些?

Hyper-V虚拟机黑屏确实可能与虚拟机的显示配置有关。在处理这类问题时,需要检查以下几个方面:一、图形处理器设置 检查虚拟化模式: 进入虚拟机的设置,找到“显示”或“图形处理器”选项。 确认是否选择了正确的图形处理器虚拟化模式。例如,有时选择集成显卡模式可能导致黑…

PROFINET转PROFIBUS揭秘网关模块如何实现西门子PLC与仪表协议转换通讯

一、项目背景在当今竞争激烈的工业生产领域,设备间的高效通讯已成为提升生产效率、确保产品质量的核心要素。以一家颇具规模的制造企业为例,其生产线的控制系统以西门子1516PLC为核心,凭借其强大的运算与控制能力,精准调控生产流程的各个环节。与此同时,用于实时监测生产过…

Easyexcel(4-模板文件)

EasyExcel 提供模板导出功能,通过预设模板和占位符,结合 Java 数据模型,开发者可快速生成格式化的 Excel 报表,操作简便,性能高效,适合大数据量导出场景文件导出 获取 resources 目录下的文件,使用 withTemplate 获取文件流导出文件模板 @GetMapping("/download1&q…

AI 辅助教学案例 02

收集整理并记录现有的比较火爆的国产 AI 在教育教学中的使用案例,以期和各位同仁、莘莘学子共同进步。前情概要 2025开年之初,人工智能呈现井喷式发展,非常火爆,尤其是 DeepSeek 的发展一骑绝尘,为适应形式所需,将使用过的案例做个记录,便有后续备查。若想小试牛刀,请点…

线性回归--最小二乘法+梯度下降算法+sklearn库

线性回归一元: (1)手工最小二乘法import numpy as np a=np.loadtxt("homespace_price",delimiter=,,dtype=float) homespace=a[:,0] price=a[:,1] x_avg=np.average(homespace) y_avg=np.average(price) xfang_avg=np.average(homespace*homespace) xy_avg=np.ave…

震惊!AI编程正在淘汰这5类人,你在其中吗?

大家好,我是狂师。 今天在知乎上看到一个关于讨论:“人工智能大爆发,AI编程工具对程序员到底是颠覆还是辅助?’”问题,觉得蛮有意思。的确,AI编程的出现,引发了人们对于程序员职业未来的广泛讨论,有人担忧它可能会颠覆程序员的职业, 今天分享一些个人观点。先说结论:…

viewport meta 标记

在移动端网页开发中,viewport meta 标记是优化显示效果的关键。它定义了浏览器可视区域的宽度和缩放比例,常用于适配不同设备屏幕。 默认情况下,移动浏览器会将网页放入一个虚拟的 viewport(如 980px),然后缩放到设备屏幕(如 375px),导致内容显得很小。例如,一个宽度…

如何用Forest方便快捷地在SpringBoot项目中对接DeepSeek

​一. 环境要求JDK 8 / 17SpringBoot 2.x / 3.xForest 1.6.4+Fastjson2依赖配置 除了 SpringBoot 和 Lombok 等基础框架之外,再加上 Forest 和 Fastjson2 的依赖<!-- Forest框架 --> <dependency><groupId>com.dtflys.forest</groupId><artifactId…

5. MySQL 存储引擎(详解说明)

5. MySQL 存储引擎(详解说明) @目录5. MySQL 存储引擎(详解说明)1. 查看存储引擎2. 设置系统默认的存储引擎3. 设置表的存储引擎3.1 创建表时指定存储引擎3.2 修改表的存储引擎4. 引擎介绍4.1 InnoDB 引擎:具备外键支持功能的事务存储引擎4.2 MyISAM 引擎:主要的非事务处…