NOIP模拟赛 #10

news/2024/11/14 8:41:23/文章来源:https://www.cnblogs.com/Sktn0089/p/18542579

A

Luogu6472

猜结论。

B

\(n\) 堆硬币,每堆有 \(3\) 枚,第 \(i\) 堆硬币从上到下价值分别为 \(a_i, b_i, a_i\)。取若干个硬币,要求每堆必须先取上面再取下面,求分别取 \(1, 2, 3, \dots, k\) 枚硬币时的最大价值和。

\(1\le n\le 5\times 10^6, \ 1\le k\le 3n\)

对于第 \(i\) 堆,可以转化为一个价值为 \(a_i\) 的物品,体积为 \(1\),以及一个价值为 \(a_i + b_i\) 的物品,体积为 \(2\),发现所有组合情况恰好对应这堆硬币取 \(0, 1, 2, 3\) 枚时的价值。

所以我们只需要对体积为 \(1\)\(2\) 的一些物品进行背包,求出体积之和恰好为 \(1, 2, 3, \dots, k\) 时的答案。考虑钦定只取体积为 \(1\) 的物品,反悔取体积为 \(2\) 的物品即可。

C

给定一个由至多 \(10\) 种小写字母组成的字符串,多次询问,求一个一个区间内本质不同子序列数量,答案模 \(10^9 + 7\)

\(1\le n, q\le 5\times 10^5\)

考虑猫树分治。对于一个子序列,在原串中匹配该子序列,映射到最小表示上。

对于一个分治节点 \((l, r, mid)\),对于一个询问 \([l_q, r_q]\) 满足 \(l\le l_q\le mid < r_q\le r\),若只用匹配 \([l_q, mid]\) 匹配是容易的。否则考虑枚举 \([mid + 1, r_q]\) 匹配的第一个字符 \(c\),对于 \(l\le i\le mid\)\(f_{i, c}\) 表示从匹配到了第 \(i\) 位,在左半部分后续匹配且 \([\text{左半部分最后一个匹配位置} + 1, mid]\) 中没有字符 \(c\) 的方案数,对于 \(mid + 1\le i\le r\)\(g_{i, c}\) 右半部分开头匹配到了位置 \(i\) 且第一个匹配的字符是 \(c\) 的方案数,那么对答案的贡献为 \(f_{l_q - 1, c}\sum_{i = mid + 1} ^ r g_{i, c}\)

对于 \(f, g\),可以直接差分 / 前缀和优化求出,时间复杂度 \(\mathcal O(10n\log n)\)

D

你需要依次 \(n\) 件商品,第 \(i\) 件商品需要花费 \(a_i\) 个金币。你可以使用一张优惠券代替一枚金币,买商品 \(i\) 使用的优惠券数量应不超过 \(b_i\)。初始时你有 \(m\) 张优惠券,当你买商品 \(i\) 时使用了 \(x\) 张优惠券,则购买后可以获得 \(\dfrac {a_i - x} c\) 张优惠券,\(c\) 为给定常数,求使用的最少金币总数。

\(1\le n\le 10^6, \ 0\le m, a_i, b_i\le 10^9, \ 2\le c\le 10^9\)

考虑商品 \(i\) 该如何合理使用优惠券:

  • 首先使用 \([0, a_i \bmod c]\) 张优惠券,此时不影响获得的优惠券数量,性价比最高。

  • 接着使用 \(k \cdot c\) 张优惠券,会损失 \(k\) 张优惠券的获得。

  • 最后使用 \([0, c - 1]\) 张优惠券,会损失 \(1\) 张优惠券的获得。

不难发现三种方式有着严格的优先级。先处理第一种方式,设 \(x_i\) 为商品 \(i\) 使用的优惠券数量,设 \(s_i\) 为买完商品 \(1\sim i\) 后剩下的优惠券数量,那么 \(x_i = \min(s_{i - 1}, b_i, a_i \bmod c)\)

然后是第二种,不难发现对应的商品越靠后越好,考虑从后往前处理,则 \(x_i \gets x_i + c \cdot \min \left(\left \lfloor \dfrac {b_i - x_i} c \right \rfloor, \left \lfloor \dfrac {s_{i - 1} - x_i} c \right \rfloor, \min_{j = i + 1} ^ n \left \{ \left \lfloor \dfrac {s_{j - 1} - x_j} {c + 1} \right \rfloor \right \} \right)\),第三者可以通过维护后缀 \(\min\) 解决。

最后是第三种方式,不难发现操作的商品数量越少越好,可以优先操作可使用优惠券数量尽量多的商品。商品 \(i\) 可使用的优惠券数量为 \(\min(b_i - x_i, s_{i - 1} - x_i, \min_{j = i + 1} ^ n \{ s_{j - 1} - x_j - 1 \})\)。设 \(t_i = s_{i - 1} - x_i\),则原式为 \(\min(b_i - x_i, t_i, \min_{j = i + 1} ^ n \{ t_j - 1 \})\)

一种暴力的方法是从大到小枚举单个商品使用优惠券数为 \(w\),然后检查每个商品是否可以操作。注意到 \(\min(t_i, \min_{j = i + 1} ^ n \{ t_j - 1 \})\) 随着 \(i\) 变大而变大,只需要注意 \(b_i - x_i\) 即可。

考虑所有商品按照 \(b_i - x_i\) 从大到小依次加入,设当前商品和下一个商品的 \(b_i - x_i\) 分别为 \(p, q\),可以处理掉 \(w \in [q + 1, p]\)。维护一个堆维护合法的位置 \(i\) 的集合,每次取出最大的合法位置,检查是否满足条件,查询可以使用线段树维护 \(t\) 的区间最小值,以及支持区间加。

  • 启示:贪心,分层,分逻辑。

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

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

相关文章

推荐一个Elasticsearch ES可视化客户端工具:ES-King

ES-King:开源免费,一个现代、实用的ES GUI客户端,支持多平台。 下载地址:https://github.com/Bronya0/ES-King 功能清单 详尽的集群信息:节点信息、堆内存占用、总内存占用、cpu占用、磁盘占用、网络流量、节点角色、集群健康、5分钟负载、每个节点的字段缓存、段缓存、查…

Kafka怎么配置SASL用户名密码认证

服务端配置(server.properties):# 开启SASL认证 security.protocol=SASL_PLAINTEXT sasl.mechanism=PLAIN# 配置JAAS文件路径 listeners=SASL_PLAINTEXT://localhost:9092 sasl.enabled.mechanisms=PLAIN listener.name.sasl_plaintext.plain.sasl.jaas.config=org.apache.kafk…

数据采集与融合技术第四次实践作业

gitee链接: https://gitee.com/zxbaixuexi/2024scrapy/tree/master/第四次实践 作业①: 1) 使用 Selenium 框架+ MySQL 数据库存储技术路线爬取“沪深 A 股”、“上证 A 股”、“深证 A 股”3 个板块的股票数据信息。 候选网站:东方财富网: http://quote.eastmoney.com/cen…

项目冲刺11.12

这个作业属于哪个课程 计科22级34班这个作业要求在哪里 作业要求这个作业的目标 进行为期七天的项目冲刺并记录前言 本篇博客是项目冲刺的第四篇,七篇博客的汇总如下:博客汇总第一篇博客第二篇博客第三篇博客第四篇博客第五篇博客第六篇博客第七篇博客团队简介队名 拖延是你不…

快速修改kafka的broker配置或topic配置

下载开源的kafka界面客户端KafkaKing:https://github.com/Bronya0/Kafka-King 连接后,双击broker配置,或者双击topic配置:修改好后回车保存就行。有些配置是改不了的。

mysql创建表

创建表 创建表要先选中数据库名 create table 表名(列名 类型)来进行创建,列名可以存在多个,表名和列名不可以一样,想要一样的话就要使用反引号把表名和列名引起来 列名在前面,类型在后面查看所有表 show tables查看当前数据库所有表查看指定表的结构 desc 表名;把表的特…

《会计原来这么有趣》——中级实务篇(刘海涛)

第一章:存货核算 1.1存货定义:存货是指企业在日常活动中持有以备出售的产成品或商品、处在生产过程中的在产品、在生产过程或提供劳务过程中耗用的材料或物料等,包括各类材料、在产品、半成品、产成品或库存商品以及包装物、低值易耗品、委托加工物资等。 参考(https://bai…

实验15:职责链模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解职责链模式的动机,掌握该模式的结构; 2、能够利用职责链模式解决实际问题。[实验任务一]:财务审批 某物资管理系统中物资采购需要分级审批,主任可以审批1万元及以下的采购单,部门经理可以审批5万元及以…

题解:[JOISC 2021 Day4] イベント巡り 2 (Event Hopping 2)

P7562 [JOISC 2021 Day4] イベント巡り 2 (Event Hopping 2) lxl 上课讲了这题,我听了选取答案区间的思路,恍然大雾 ,于是就有了这篇题解—— sto lxl orz !!!本题解主要详解区间选取。 前置知识:倍增策略 首先,本题的 \(L_i\)、\(R_i\) 较大,离散化即可。 另外,我个…

团队作业4——项目冲刺-2

团队作业4——项目冲刺-2信息项 内容课程名称 广工计院计科34班软工作业要求位置 作业要求作业目标 小飞棍团队对需求改进和系统设计进行讨论GitHub链接 GitHub一、团队简介队名:小飞棍队团队成员:姓名 学号罗振烘(组长) 3122004748庄崇立 3122004633李响 3121002802何昌洲…

实验14:代理模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解代理模式的动机,掌握该模式的结构; 2、能够利用代理模式解决实际问题。[实验任务一]:婚介所 婚介所其实就是找对象的一个代理,请仿照我们的课堂例子“论坛权限控制代理”完成这个实际问题,其中如果年纪…