杂题记录 4

news/2025/11/12 22:25:58/文章来源:https://www.cnblogs.com/yzq-yzq/p/19215673

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.mzph.cn/news/963829.shtml

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

相关文章

找唯一特征去重转移DP——CF1210F2 Marek and Matching

找唯一特征值去重转移DP——CF1210F2 Marek and Matching 匹配肯定利用霍尔定理,先写出:\(\forall S,|S|-|G(S)|\le 0\)。 图论计数往往考虑容斥,设 \(f_{S,T}\) 表示对于二分图 \((S,T)\),出现大小为 \(|S|\) 的匹…

UEFI Boot Manager

简介 UEFI boot manager是一个固件方针引擎,它可以通过修改global NVRAM 变量来配置;它会按照global NVRAM variable 定义的顺序来加载UEFI driver or UEFI application。当固件初始化完成,就会把控制权交给boot ma…

25年11月计数题做题记录

AGC073C 因为实数不好处理所以我们考虑将实数映射到整数上去做,相当于我们把值域在 \([-(n-1),1]\) 之间的实数映射到 \([-(n-1)m,m]\) 之间的整数上,其中 \(m\rightarrow\infty\),现在我们需要考虑的就是值域在 \(…

固体废物资源化处理简答题与论述题

固体废物处理核心内容简答题与论述题(含解说) 一、简答题(侧重基础概念与关键参数) 1. 简答题1:固体废物分类及“三化”“3R”原则分别是什么?答案:分类:工业固体废物、城市固体废物、农业固体废物、危险废物、…

详细介绍:Python基础语法与数据类型详解

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

noip6 多校1

11.1211.12 t1 \(O(nm^2)\)是简单的。 发挥人类智慧发现每次最优只在前面较少的状态。 于是可过。 其实人类智慧有证明的。 考虑若最大值越大,则选的次数越小,反之亦然。 平均一下就过了。 codet1 #include <bits…

CCPC2025哈尔滨站-H. 匹配

时停问题,考虑势能函数。设单个集合的势能函数为 \(f(x)\),其中 \(x\) 为集合大小,这是合法的。总的势能 \(\Phi = \sum\limits_{s\in S} f(|s|)\).考虑列出方程解出 \(f\)。 满足鞅的时停定理的势能 \(\Phi\) 满足…

通过开发环境部署工具安装qt相关c++开发环境

通过开发环境部署工具安装qt相关c++开发环境

第23天(简单题中等题 二分查找)

打卡第二十三天 1道简单题+2道中等题题目: 两数之和思路一: 双指针,题目说数组下标从1开始,先初始指针还是从0开始,返回时左右指针都加1就行 代码: class Solution { public:vector<int> twoSum(vector<int&g…

Cinema4D 2025保姆级下载安装教程|含安装包获取+新手入门指南

目录一、Cinema4D 2025 核心功能亮点二、Cinema4D 2025 正规下载渠道1.Cinema4D 2025 下载(推荐)2.其他下载注意事项三、Cinema4D 2025 详细安装激活步骤(Windows 系统)步骤 1:解压安装包(提前关闭杀毒软件)步骤…

CF2101D

给定一个长度为 \(n\) 的排列 \(a\),问其有多少个子串 \(b\),使得 \(LIS(b) + LDS(b) = |b| + 1\) \(n \le 2 \times 10^5\)考虑一下题目给的条件在说啥,其实就是每个元素都在 \(LIS/LDS\) 中,只有一个相交的地方(…

【做题记录】HZOJ 多校-数论

B. [POI2011] SEJ-Strongbox 2025noip模拟赛73 BCode #include<bits/stdc++.h> #define int long long #define il inline #define pb push_back using namespace std; namespace asbt{ const int maxn=2.5e5+5;…

2014 吉林省赛题解 | CCUT应用OJ题解——F[X] + X = N

题目简介题意:对于任意十进制整数 \(X\),定义 \(F[X]^\dagger\) 表示其循环左移一位所得到的数。给定非负整数 \(N\),求所有满足等式 \(X+F[X]=N\) 的 \(X\) 的个数。 \(\dagger\) 循环左移:设 \(X=a_0a_1\cdots a…

洛谷 P4859 已经没有什么好害怕的了 题解(DP,二项式反演)

给两个长为 \(n\) 的数组 \(a, b,\) 求将 \(a_i, b_j\) 两两匹配使得 \(a_i > b_j\) 的数量比 \(a_i < b_j\) 的数量多 \(k\)。数字不重复, \(k \le n \le 2000\)。注意到,其实 \(a_i>b_j\) 和 \(a_i<b_j…

01321:棋盘问题

|DFS|回溯| 难点1:DFS,对于dfs(h,t)表示的“即将在第h行进行摆放,已摆放的棋子数为t个”,即如何在dfs函数内部进行递归:若该棋可以放在第h行的第i个位置(标注take[i]=true),则对改行以下行中所有可行的点进行递归…

飞鱼uu单人防空4

飞鱼uu单人防空4盖亚特买40个-->超级防空100-->超级磁能40-->磁能巨无霸20.剩下的随便买.一直造坦克碉堡

C 变量的作用域与生存周期

弄清楚变量的作用域和生存周期,能够让我们不至于犯低级错误; 局部变量 在初学C语言变量的时候,我们通常将变量写在main函数内; 在函数内部,或者{}块内部的变量称为局部变量;它有以下特点:系统不会帮忙初始化,需…

模式识别与机器学习课程笔记(11):深度学习 - 详解

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

Python字符串常用操作速查表(全面版v1.0 - 2025年11月12日修订)

Python字符串常用操作速查表(全面版v1.0 - 2025年11月12日修订) 📌 使用说明 时间复杂度:O(1)=常数级(快),O(n)=线性级(随数据量增长),O(k)=取决于传入可迭代对象长度 🔴 字符串(str)为不可变类型,所有&…

05.创建型 - 简单工厂模式(Simple Factory Pattern)

简单工厂模式(Simple Factory Pattern) 定义一个工厂类,根据传入的参数不同返回不同的实例,被创建的实例具有共同的父类或接口。 适用场景:(1)需要创建的对象较少。(2)客户端不关心对象的创建过程。例: 你需要一辆…