当前位置: 首页 > news >正文

杂题记录 4

NOIP 前咋还布置一堆数据结构 /yun,关键布置的有八成都是做过的。于是乱找了些 DS 做。

P14363 [CSP-S 2025] 谐音替换 / replace

发现是询问 \(p\in P,q\in Q\)\((p,q)\) 的个数的形式,其中 \(p\in P\) 指的是 \(p\)\(P\) 的前缀。

考虑 ccf 的数据很水,卡你暴力肯定是塞一堆短串,于是把短串长度小于等于一个数 \(L\) 的串丢哈希表里,然后查询的时候 \(O(L^2)\) 暴力查一遍,取 \(L=10\) 跑的飞快。

P4475 巧克力王国

随机数据求半平面内点权和。

把 KDT 建出来后暴力查询,假如一个节点的矩形四个顶点都在半平面或都不在就退出。期望 \(O(\sqrt n)\),这个题的数据能过,但常数极大。

考虑一个事情,因为点随机,我们把平面划分成 \(n\)\(\sqrt n \times \sqrt n\) 的网格,每个格子内期望的点个数是 \(O(1)\) 的。

考虑半平面直线切过去,对于每一列应该是一个前缀的整的网格再补上一段散的,然而总共的散块是 \(O(\sqrt n)\) 的,对于每一列的前缀和预处理一下,就能做到 \(O(\sqrt n)\) 的复杂度。

假如数据不随机,考虑半平面数点的做法 \(n\sqrt q \log n\),在这个题难以通过。

P4898 [IOI 2018] seats 排座位

咋这么聪明。

我们将前 \(k\) 个点染黑,其余点染白,考虑刻画矩形,这相当于要满足:

一个白点四个方向的黑点个数小于二。

对于黑点左方和上方的点均为白点的黑点,这样的黑点个数为 \(1\)

考虑如何维护答案,我们可以发现对于一个点 \((r,c)\),它满足条件的 \(k\) 是一个区间 \([l,r]\),而我们只需要每个点两个条件满足其中一个。

考虑把满足条件的区间加上 \(1\),那么答案其实就是全局 \(1\) 的个数,然而每个位置的值大于等于 \(0\),考虑经典套路,那我们线段树维护最小值和严格次小值以及它们的出现次数即可。

P8626 [蓝桥杯 2015 省 A] 灾后重建

咋这么蠢。

考虑建重构树,发现求的其实是一个区间 \([l,r]\) 满足 \(i\)\(k\)\(c\in[0,k)\) 的点的 lca

预处理用欧拉序st表 \(O(1)\) 查 lca,对 \(k>\sqrt n\) 暴力即可,对于 \(k\leq \sqrt n\) 我们对每个 \((k,c)\) 建出个可以维护区间 lca 的数据结构即可。

考虑用线段树,这样预处理单次是线性的,这样总复杂度是 \((n+q)\sqrt n\) 的。

P11691 [Ynoi Hard Round 2025] 《十字神名的预言者》慈悲(色彩)

二维平面有 \(n\) 个点,每个点有个权值,还有 \(m\) 个半平面,多次查询区间半平面的交中的点权和。

考虑答案为区间半平面补的并的权值和的补。

类似 rrusq 的做法,只不过是在半平面上。我们扫描线,然后变成给半平面的时间改为 \(i\),以及查询全局时间 \(\ge l\) 的点权和。

随机数据下 KDT 可过,做法与 rrusq 相同,半平面下有平面最优划分树,能做到将半平面划分到树上的 \(\sqrt n\) 个节点。

平面划分树的建法,我也不太会,网上关于这个的讲解很少。

大概做法是递归建树,划分树上的每个点维护平面上的一个简单多边形的点集,我们取三角形或凸四边形,这样方便我们快速判断一个点是否在这个点集内,以及判断半平面的直线是否与这块平面有交。

然后每次我们只递归与半平面相交的部分。

根据 r切割 的理论,存在分割法可以将平面划分成 \(r^2\) 个子平面,且每次递归只会递归 \(r\) 个子平面。

啥时候想通了或者半平面普及了我就去写。

http://www.rkmt.cn/news/47944.html

相关文章:

  • 25年11月计数题做题记录
  • CCPC2025哈尔滨站-H. 匹配
  • 【做题记录】HZOJ 多校-数论
  • 2014 吉林省赛题解 | CCUT应用OJ题解——F[X] + X = N
  • 洛谷 P4859 已经没有什么好害怕的了 题解(DP,二项式反演)
  • 飞鱼uu单人防空4
  • HaluMem:揭示当前AI记忆系统的系统性缺陷,系统失效率超50%
  • 团队作业2-需求规格说明书
  • 25.11.12 差分约束算法
  • 11/12
  • 解决Cursor编辑器无法通过include path识别C++头文件的问题
  • 重组蛋白基础与技术概述
  • Dynamics 365 Field Service跨站脚本欺骗漏洞分析
  • 日报11.12
  • [译] 省略 Async 与 Await
  • iverilog、gtkwave工具链接
  • 简化Python数据结构初始化:从繁琐到优雅的进阶指南 - 详解
  • 软工团队作业2--需求规格说明书
  • #题解#洛谷P1314#二分#前缀和#
  • 《团队作业2》需求规格说明书
  • 深入理解C++智能指针:掌握RAII与内存安全的利器 - 详解
  • Linux下的花式「隔空」文件传输魔法
  • OpenEuler 22.03 安装zabbix-agent(源代码编译及自制rpm包)
  • pq使用体验和改进建议
  • 设备坏了才修,能不能提前预测?
  • UltraSearch(文件搜索神器) Pro v4.8.5.1185 多语便携版
  • B4093 [CSP-X2021 山东] 发送快递
  • 从零上手 Rokid JSAR:打造专属 AR 桌面交互式 3D魔方,开启空间创建之旅
  • CF468C Hack it!
  • 深入解析:FT62FC3X 8位MCU单片机选型表,详细解析FT62FC31A/32A/33A/35A/3FA