Ynoi Easy Round 2015 学习笔记

news/2025/10/1 16:40:30/文章来源:https://www.cnblogs.com/CEFqwq/p/19122532

很牛的一套题,非常非常综合。做完感觉 ds 水平飞起来了。

我会把实现讲的详细一些。

当然,这篇文章没有 Day2T3 世界上最幸福的女孩。我不会 geo,geo 是我最菜的领域。

按照个人难度排序。

Day2T1 此时此刻的光辉

主要练习点:常数优化/Pollard-Rho

当之无愧的签子。

显然根据 \(d\) 的计算式子,要统计区间内素数的出现次数。那么显然可以先用 Pollard-Rho,\(O(nV^{0.25})\) 把每个数的质因数先预处理出来。因为 \(V \leq 10^9\) 每个数最多只有 \(10\) 个不同的质因数。

区间显然可以用莫队维护,用一个 gp_hash_table 这样就是 \(O(n \sqrt{n})\) 的,但是枚举质因数有 \(10\) 倍常数。

如果前面用暴力分解,会跑的比较慢,卡常应该是相当折磨的。Pollard-Rho 就不一样了,瓶颈在于莫队,应该会快很多。但是这样依然过不了。

然后考虑还有没有什么优化方式。考虑把 \(1000\) 以内的质数筛出来,这部分前缀和作差暴力做,剩下的质因数最多只有 \(2\) 个(\(1001^3>10^9\)),而这些质因数出现的又比较多,这样可以大幅减少跑的次数,Pollard-Rho 和莫队就快飞了。

事实上,筛出来 \(100\) 以内的质数比 \(1000\) 快得多,可能因为 \(100\) 以上的出现次数没那么多。

Day1T1 我回来了

有点综合的题。

首先,发现触发技能的血量区间是一个关于 \(d\) 的调和级数。\(d \leq n\),所以区间有 \(O(n \log n)\) 个。

然后我们考虑维护每个区间在什么时候有随从。因为随从血量也 \(\leq n\),所以可以开一个 ST 表维护出现血量 \(i\) 随从的最小时刻。查的时候 ST 表查即可。

\(r(d,i)\) 表示参数 \(d\) 触发 \(i\) 次对应的血量最高随从的血量区间。

这部分也解决了,那么参数为 \(d\) 触发 \(i\) 次的最小时刻是什么时候呢?

  1. 能够触发 \(i-1\) 次之后来了个血在区间 \(r(d,i)\) 内的随从,那么时间是这个随从来的时间。

  2. 先来了 \(r(d,i)\) 的随从然后能够触发 \(i-1\) 次,那么此时也就直接能够触发 \(i\) 次。时间是能够触发 \(i-1\) 次的时间。

于是我们就会算 \(r(d,i)\) 能在什么时候产生贡献了。树状数组维护即可。

Day1T2 纵使日薄西山

主要练习点:线段树、分类讨论。

考虑答案的计算。相等是容易判的,所以分析的时候不考虑。

有性质:如果 \(a_i > a_{i-1}\)\(a_i > a_{i+1}\),那么这个大小关系不会改变。因为不存在 \(a_{i-1} > a_i\) 或者 \(a_{i+1}>a_i\) 能够使得 \(a_i\) 被某一边带着减掉使得另一边更大。

进一步发现这些 \(a_i\) 的和就是答案。

到这里,思路就明朗了:用线段树把这些 \(a_i\) 维护出来。

怎么维护呢?记一个 \(vl[0/1/2/3]\) 维护端点选不选:左右都选/左边不选/右边不选/左右都不选,再维护一下这些状态没被记录的端点有没有被选上。

每一个状态都有 \(3\) 种合并的可能,分别进行讨论,一共 \(12\) 种分类。复制粘贴是好的,如果没有漏改会很爽。

为什么加了没有漏改四个字呢,这是一个悲伤的故事。

单点修改全局查询就好了,所以 pushup 函数占到了总码长的 \(\dfrac{3}{4}\) 左右。憋笑。

Day2T2 盼君勿忘

主要练习点:复杂度平衡、根号分治。

首先,一眼莫队,然后不会做了。

思考,如果对于一段长度为 \(x\) 的区间,某个数 \(p\) 出现了 \(k\) 次,贡献是怎么样的。

总方案数显然是 \(2^x\),不选 \(p\) 的方案数即为 \(2^{x-k}\)。那么 \(p\) 的贡献就是 \(p(2^x-2^{x-k})\)

那么我们就需要统计每个数的出现次数。

但是问题在于,\(p\) 是不同的。这很要命。这意味着我们统计答案必须得枚举。

复杂度会爆掉,尝试根号分治。

对于出现次数 \(< \sqrt{n}\) 的,记录每一个出现次数,所有数的和,根据分配律是可以算出来这部分贡献的。

对于 \(\geq \sqrt{n}\) 的,记录有哪几个数,出现了多少次,显然这部分不会超过 \(\sqrt{n}\) 个数。用 unordered_set 可以实现 \(O(1)\) 维护。

最后考虑 \(p\) 的幂次怎么求。只要把 \(p^1,p^2,\dots p^{\sqrt{n}}\)\(p^{2\sqrt{n}},p^{3\sqrt{n}},\dots p^{n}\) 处理掉就可以合并出每一个幂次了。复杂度 \(O(\sqrt{n})\)

这样子,莫队的复杂度是 \(O(n\sqrt{m})\),每组询问进行求幂次和统计的复杂度是 \(O(\sqrt{n})\)。总复杂度 \(O(n\sqrt{m}+m\sqrt{n})\)

Day1T3 即便看不到未来

\(k\) 很小,可以暴力查 \(k\)

然后考虑具体怎么维护。

可以发现,一个位置只能够对 \(O(k)\) 个位置做出贡献。可以在前面加,也可以在后面加,还可以合并两部分。

考虑如何加位置。直接对 \(r\) 扫描线,记录对于每个 \(l\) 的贡献,具体维护方法为,枚举每一个可以扩展的位置,依次加入,以 \(a_i\) 为中心向左右扩展区间。开 \(k\) 棵树状数组,在这些树状数组上更新答案即可。

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

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

相关文章

详细介绍:《红色脉络:一部PLMN在中国的演进史诗 (1G-6G)》 第11篇 | 核心网演进终局:从EPC到5GC——微服务与“云原生”

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

网站地图提交入口现在做个企业网站一般多少钱

https://lug.ustc.edu.cn/wiki/mirrors/help转载于:https://www.cnblogs.com/hikecn/p/5797959.html

公司做的网站打开慢网站新闻稿模板

一、前言 延迟队列的使用场景&#xff1a;1.未按时支付的订单&#xff0c;30分钟过期之后取消订单&#xff1b;2.给活跃度比较低的用户间隔N天之后推送消息&#xff0c;提高活跃度&#xff1b;3.过1分钟给新注册会员的用户&#xff0c;发送注册邮件等。 实现延迟队列的方式有…

实用指南:Postman 学习笔记 III:CLI 自动化测试与 Jenkins CI/CD 实践

实用指南:Postman 学习笔记 III:CLI 自动化测试与 Jenkins CI/CD 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: …

完整教程:渗透技巧403绕过

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

公民科学研究奖项众人智慧表彰技术创新项目

2025年"众人智慧"研究奖表彰了三个杰出的公民科学项目,包括利用3D打印技术开发儿童假肢、构建人机交互研究平台以及研究桦树生态系统的生物多样性,展示了公众参与科学研究的创新成果。公民科学研究奖项&qu…

深入解析:@xyflow/react:构建交互式节点流程图的完整指南

深入解析:@xyflow/react:构建交互式节点流程图的完整指南2025-10-01 16:25 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !importan…

南昌网站搭建软文优化

二叉树OJ面试题 1. 对称二叉树2.二叉树的构建及遍历3.二叉树的层序遍历4.给定一个二叉树, 找到该树中两个指定节点的最近公共祖先5. 二叉树创建字符串用栈来存放路径上的节点 1. 对称二叉树 思路&#xff1a; 在根的值一样接着往下判断判断左树的左子树的值和右树的右子树的值…

临沂企业建站系统模板网络推广赚钱平台

目录 前言&#xff1a; Linux的目录结构 Linux常用指令简介 whoami指令 ls指令 pwd指令 cd指令 tree指令 touch指令 mkdir指令 rmdir指令与rm指令 man指令 cp&#xff08;copy&#xff09;指令 mv&#xff08;move&#xff09;指令 cat指令 重定向及重定向的类型…

杭州专业网站建设wordpress 流程

STL中的序列式容器主要包括 vector 向量容器、list 列表容器以及 deque 双端队列容器。 vector 实现的是一个动态数组。 定义在 <vector> 头文件中。 #include <iostream> #include <vector> using namespace std; int main() {//初始化一个空vectorvecto…

网站建设的目标是网站内容建设和运营工作

文章目录 概念结构实例总结 概念 观察者模式&#xff1a;定义对象之间的一种一对多的依赖关系&#xff0c;使得每当一个对象状态发生改变时&#xff0c;其他相关依赖对象都得到通知并被自动更新。 观察者模式是使用频率较高的一个模式&#xff0c;它建立了对象与对象之间的依赖…

1数学建模模型分类

数学建模模型分类核心笔记 一、预测类模型 1. 定义 基于历史数据或已知现象,挖掘内在发展规律,对未来趋势或样本内未知属性进行推断的模型类型,核心是“数据驱动+规律推导”。 2. 关键分类(按数据量与预测范围)样…

网站建设昆山网站研发流程

1.1web基本 session 和 cookie 有什么区别&#xff1f; 存储位置不同&#xff1a;session 存储在服务器端&#xff1b;cookie 存储在浏览器端。 安全性不同&#xff1a;cookie 安全性一般&#xff0c;在浏览器存储&#xff0c;可以被伪造和修改。 容量和个数限制&#xff1a;…

企业网站 阿里云asp网站应用程序

1、符号运算符 ( ) [ ] . -> 圆括号 数组 成员选择&#xff08;对象&#xff09;——结构体、联合体 成员选择&#xff08;指针&#xff09;——结构体、联合体 2、符号运算符 - () -- * & …

企业做网站需要什么资料爱战网关键词挖掘

文章目录 服务端通过传入命令处理实现远程命令执行使用Windows编辑UDP客户端实现Windows远程控制Linux接收套接字的其他信息UDP套接字简单群聊服务端UDP套接字简单群聊客户端运行测试及分离输入输出 参考代码 服务端通过传入命令处理实现远程命令执行 『 Linux 』利用UDP套接字…

数学每日?题

遇到一些比较好的题会进行收录。范围:我会的知识点。已知二次函数 \(f(x)=ax^2+bx+c(b>a)\) 满足 \(\forall x \in \mathbb{R}, f(x) \ge 0\) 恒成立,求 \(\dfrac{b - a}{a + b + c}\) 的最大值。 已知的条件如下…

OpenSpeedy最新版下载,夸克百度网盘加速提速|游戏加速工具|官网入口

OpenSpeedy 是一款面向 Windows 平台的开源免费游戏变速工具,旨在通过修改游戏进程的时间函数实现加速或减速,从而突破原生帧率限制、提升单机游戏流畅度,甚至在部分情况下加速网盘下载。软件采用 Ring3 层 Hook 技…

详细介绍:深入理解 SPI:从定义到 Spring Boot 实践

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

详细介绍:深入理解 SPI:从定义到 Spring Boot 实践

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

RVC WebUI(Retrieval-based-Voice-Conversion-WebUI)配置 - 实践

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