Ynoi 合集

news/2024/9/21 20:47:24

注:无特殊说明的情况下,\(m\)\(q\) 等都视为与 \(n\) 同阶。


[Ynoi2010] Fusion tree

感觉很具有启发性的题目。首先我们对于每一个点维护其儿子所组成的 01-trie。父亲的操作就单独处理即可。那么我们的目标其实很明确:就是执行一个对字典树内所有元素加 \(1\) 的操作。

而这个操作怎么做呢?我们考虑把一个二进制数反插入 01-trie,具体讲,就是从低位到高位插入。这样你手玩一下就可以发现单次操作可以做到 \(\mathcal O(\log V)\) 了。

至于为什么会想到倒插?也许是加法的法则使然。反正这个 trick 记住就行了。


updated on 2024.8.31:哎呀,好像找不到没写过题解的 Ynoi 了。只有炒冷饭了。


[Ynoi2019] 魔法少女网站

当初做这个题的时候就是用的序列分块。感觉其实挺好的。

我们考虑逐块处理。实际上我们就是令小于等于 \(x\) 的位置为 1,大于的位置为 0,然后对每一个极长 1 段算贡献。那么散块部分就是很简单的,单点修改直接暴力。主要看整块部分。

我们可以知道任何时候整块产生的影响本质上只有 \(\mathcal O(B)\) 种。那么把这些暴力处理出来过后,查询时我们就可以 lower_bound 块内的权值序列找到相应的那一种直接计算。这个的处理用链表就可以了。至此我们得到了一个 \(\mathcal O(n\sqrt n\log n)\) 的做法了。

发现复杂度瓶颈在于 lower_bound。我们可以根号平衡,对于整个值域的数维护块内小于等于它的数的个数。这个问题是可以做到 \(\mathcal O(\sqrt n)-\mathcal O(1)\) 的。至此,本问题就得到了 \(\mathcal O(n^{1.5})\) 的解法。

实际上这个做法挺平凡的,没有用到什么比较人类智慧的 trick,思路也较为自然。

[Ynoi2009] pmrllcsrms

远古题了,补一个题解。

考虑按 \(c\) 分块。单个块内的直接暴力,然后把块看成整体再维护另外一颗线段树。剩下的情况只有可能是两个块间的情况。去掉 corner cases,我们现在考虑如下情况:

第一个块是 \(1\)\(c\),第二个块是 \(c+1\)\(2c\)。把两个块叠在一起,那么所选区间左端点必定在右端点右边。

也就是有两个数组 \(\text{pre}\)\(\text{suf}\),每一次操作区间修改某个数组的值,或者询问选出 \(1\le i<j\le c\) 使得 \(\text{pre}_i+\text{suf}_j\) 最大。这是比较易于线段树维护的。然后依然是用一颗大线段树把每两个块之间的贡献穿起来。

大致思路就是这样,但是细节很多,比如散块,长度不足 \(c\) 的块,以及被某个块包含的询问区间等等,而且很卡常。时间复杂度 \(\mathcal O(n\log n)\)。评价一下就是敢往这方面想就能会。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

C#|.net core 基础 - 深拷贝的五大类N种实现方式

C#深拷贝复杂,文中介绍了五大类N种深拷贝方法,包括简单引用类型、手动方式、序列化方式、第三方库方式和扩展视野方式,并对比了性能。建议使用AutoMapper和DeepCloner等成熟库或根据性能需求选择表达式树和Emit。在实际应用中经常会有这样的需求:获取一个与原对象数据相同但…

智能写作新体验:AI写作小助手助力内容创作

在信息时代的浪潮中,内容创作已成为连接世界、传递价值的重要桥梁。然而,传统的写作方式在效率和质量上往往难以满足现代社会的需求。此时,AI写作小助手的诞生,为内容创作带来了全新的体验。本文将深入探讨AI写作小助手如何助力内容创作,开启智能写作的新篇章。AI写作小助…

基于Vue实现动态组织结构图

最近一个项目里有个前端绘制家谱图的需求,大概是下面这个样子:组件源码如下<template><table v-if="treeData.name"><tr><td :colspan="Array.isArray(treeData.children) ? treeData.children.length * 2 : 1":class="{pare…

中国能源发展报告2022

中国能源发展与未来中国能源发展报告2022林伯强高耗能产业的出路 高耗能产业布局:08 年,东高西低 >> 08 年之后,西高东低,自南向北移动,东减西增; 转移趋势北部沿海城市-河北,山东,2012-2017 高耗能产业流入下降,去产能;2009 提出中部崛起战略,通过促进中部地…

Qt表格入门

这篇博客文章深入探讨了Qt表格处理的基础知识与实践技巧。主要内容包括:使用QTableWidget和QTableView展示数据,通过QStyledItemDelegate和QSortFilterProxyModel实现数据代理、过滤与排序功能。文章还附有详细的代码示例,指导读者如何在Qt中创建并个性化表格视图。对于学习…

王悦帆的第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 熟悉如何运用博客,展示自己姓名-学号 王悦帆 2022329301024一、自我介绍 (一)基本情况 大家好,我叫王悦帆,来自河南长垣,是自动化一班的成员,兴趣爱好是踢足球,看足球比赛。曾经去过现场…

day5[LangGPT结构化提示词编写实践]

任务要求:利用LangGPT优化提示词,使LLM输出正确结果。

Rebound-hackthebox

端口扫描smb探测 crackmapexec smb 10.10.11.231 -u anonymous -p "" --sharesRID 枚举 使用 CME 工具对指定主机的 SMB 服务进行扫描,并尝试使用 RID 枚举技术获取主机上的用户和组信息。RID 枚举(Relative Identifier enumeration)是一种用于获取 Windows 主机上…