随笔分类 -  OI

摘要:P9478 [NOI2023] 方格染色 考虑前 95pts,显然横线和竖线就是简单扫描线,斜线因为只有五条所以直接暴力就行。 最后五分,值域变成了 \(10^9\),这对于前面的扫描线自然不在话下,对于斜线其实依然是同理的,我们只需减去和直线相交的部分即可。用 map 判断是否有删重的位置即可。之 阅读全文
posted @ 2025-09-06 16:05 Laoshan_PLUS 阅读(12) 评论(0) 推荐(0)
摘要:KTT KTT 是线段树的一种变种,用来维护若干个形如 \(y=ka+b\) 的一次函数的相关信息。每次修改包括给 \(k\) 修改和给 \(b\) 修改,查询包括区间求和、区间求最大值等。 线段树上的每个区间其实只需要维护 \(a,b\) 两个值即可,那么每一次对 \(k\) 的修改就可以直接在 阅读全文
posted @ 2025-07-27 22:16 Laoshan_PLUS 阅读(332) 评论(0) 推荐(0)
摘要:CF922E Birds / Птички 状态的设计比较特别。我们要求的是召唤的鸟的最大值,但是我们发现如果这样设置,题中的魔法值不好体现在状态中。于是采取另一种思路,把召唤的鸟的数量设在状态中,即设置 \(f_{i,j}\) 表示走到第 \(i\) 棵树,此前已经召唤了 \(j\) 只鸟,此时剩 阅读全文
posted @ 2025-07-14 21:49 Laoshan_PLUS 阅读(217) 评论(0) 推荐(0)
摘要:zzy 的金牌 可重集一类的东西是没有顺序之分的,发现 \(K\) 只有 \(300\),所以如果把最终的集合和开始的集合做差,得到一个 \(b\) 数组应该是满足 \(\forall b_i+a_i\ge b_{i-1}+a_{i-1}\) 且 \(\sum b_i=K\) 的。那么我们现在只需 阅读全文
posted @ 2025-07-14 20:09 Laoshan_PLUS 阅读(268) 评论(0) 推荐(0)
摘要:CF1651F Tower Defence 其实是一道分块题,但是我不想写分块,于是就写了主席树。 暴力是显然的,每一个怪物出现时都让它把塔挨个走一遍即可。现在要优化这个暴力,就要考虑如何快速处理每个怪物的情况。 发现一个怪物会让一段塔的前缀的魔力值变成 \(0\),然后死在一个塔上并让这个塔的魔力 阅读全文
posted @ 2025-07-13 22:04 Laoshan_PLUS 阅读(230) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2025-07-08 14:44 Laoshan_PLUS 阅读(0) 评论(0) 推荐(0)
摘要:BZOJ4665 小 w 的喜糖 这道题可以说是二项式反演的经典应用。 第一次转化,题目中说使每个人手里的糖都不相同,类似于错排问题,而我们显然是不好直接进行处理的。于是考虑转化为计算使一部分人手里的糖与原来相同的方案数,如果记作 \(g(i)\),那么答案就是 \(g(0)\)。 第二次转化,看到 阅读全文
posted @ 2025-06-29 21:16 Laoshan_PLUS 阅读(237) 评论(0) 推荐(0)
摘要:原根 阶 定义 由欧拉定理,对于 \(a\in\mathbf Z\),\(m\in\mathbf N^*\),若 \(a,m\) 互质,则 \(a^{\varphi(m)}\equiv1\pmod m\)。 因此满足同余式 \(a^n\equiv1\pmod m\) 的最小整数 \(n\) 存在,这 阅读全文
posted @ 2025-06-28 11:00 Laoshan_PLUS 阅读(234) 评论(0) 推荐(0)
摘要:LCT LCT 用于解决动态树问题,可以理解为在正常的树剖能解决的问题的基础上增加了一项操作:断开并连接一些边,并强制在线。 我们来看 LCT 是怎么解决这类问题的。 实链剖分 树剖中我们采用的是重链剖分,将树剖成一条条链,就可以把对树上路径的查询转化为不超过 \(\log n\) 条链的查询,从而 阅读全文
posted @ 2025-06-28 10:07 Laoshan_PLUS 阅读(236) 评论(0) 推荐(0)
摘要:替罪羊树 平衡树的一种。其特点是采用 “摧毁—重建” 的方法维护 BST 的平衡。 具体而言,当我们发现树上有一棵子树不平衡了,就摧毁它,然后重新建一棵平衡的子树。 不平衡率 我们定义不平衡率 \(\alpha\in[0.5,1]\) 为:一棵以 \(u\) 为根的子树,若其左子树或右子树占比大于 阅读全文
posted @ 2025-06-28 09:00 Laoshan_PLUS 阅读(244) 评论(0) 推荐(0)
摘要:线性基 定义 竞赛中一般用到的都是异或空间线性基。线性基可以看作针对一个数集 \(S\) 而产生的新集合,满足线性基中的任意数能产生的异或和的种类数和原集合能产生的异或和的种类数相同,且线性基的大小最小。 由此可以得出线性基中的几条性质(记线性基为 \(P\)): 等价性。在原集合 \(S\) 上进 阅读全文
posted @ 2025-05-03 19:39 Laoshan_PLUS 阅读(121) 评论(0) 推荐(0)
摘要:Burnside 引理和 Polya 定理 群论基础 若集合 \(S\ne\varnothing\) 和 \(S\) 上二元运算 \(\cdot\) 构成的代数结构 \(G(S,\cdot)\) 满足以下性质: 封闭性:\(\forall a,b\in S\),\(a\cdot b\in S\); 阅读全文
posted @ 2025-05-03 17:45 Laoshan_PLUS 阅读(38) 评论(0) 推荐(0)
摘要:K-D Tree 简介 K-D Tree 是一种能够维护多维数据的二叉树。一般来说,竞赛中用到的都是 2-D Tree,即维护二维数据,比如平面上的点的数据。 K-D Tree 能解决的问题用很多其他的数据结构也能解决,比如 CDQ 分治、树套树,抑或是一些计算几何知识。因为 K-D Tree 在 阅读全文
posted @ 2025-05-03 16:49 Laoshan_PLUS 阅读(42) 评论(0) 推荐(0)
摘要:线段树综合 线段树 Pro Max。 前置知识:权值线段树,动态开点线段树。这两个东西是相辅相成的,到现在应该很熟练。其中权值线段树可以维护数字的出现次数相关信息,动态开点线段树则是解决值域过大带来的问题,或者是要开多个线段树之用。 线段树分裂 前置知识:线段树合并。那么有合并就有分裂,线段树分裂一 阅读全文
posted @ 2025-04-06 19:49 Laoshan_PLUS 阅读(40) 评论(0) 推荐(0)
摘要:奇技淫巧。 阅读全文
posted @ 2025-04-06 14:18 Laoshan_PLUS 阅读(276) 评论(0) 推荐(3)
摘要:可持久化数据结构 首先需要知道,何谓可持久化?具体而言,就是对每次操作保留一个历史版本,同时可以基于其中一个历史版本进行操作,且复杂度在可接受范围内。 显然不能每次都拷贝一遍,但是利用一些性质,一些常见的数据结构都是在同样的复杂度下做到可持久化的。 可持久化线段树(主席树) 其实主席树不完全等于可持 阅读全文
posted @ 2025-03-29 22:21 Laoshan_PLUS 阅读(34) 评论(0) 推荐(0)
摘要:拉格朗日插值 插值 什么是插值?插值是一种通过已知的、离散的数据点推算一定范围内的新数据点的方法。 插值的一般形式如下: 已知 \(n\) 个点 \(P_1(x_1,y_1),P_2(x_2,y_2),\dots,P_n(x_n,y_n)\),求 \(n-1\) 次多项式 \(f(x)\) 满足 \ 阅读全文
posted @ 2025-03-16 18:56 Laoshan_PLUS 阅读(151) 评论(0) 推荐(0)
摘要:杜教筛 积性函数 定义 定义在所有正整数上的函数称为算术函数(或数论函数)。 若算术函数 \(f\) 满足对于任意两个互质的正整数 \(p\) 和 \(q\) 均有 \(f(pq)=f(p)f(q)\),则称该函数为积性函数。 若算术函数 \(f\) 满足对于任意两个正整数 \(p\) 和 \(q\ 阅读全文
posted @ 2025-03-16 09:21 Laoshan_PLUS 阅读(74) 评论(0) 推荐(0)
摘要:莫比乌斯反演 整除分块(数论分块) 这是莫比乌斯反演的前置知识。 整除分块用于在 \(O(\sqrt n)\) 的时间复杂度内求解以下和式: \[\sum_{i=1}^nf(i)\left\lfloor\frac ni\right\rfloor \]其中 \(f(i)\) 是一个函数。如果暴力求解, 阅读全文
posted @ 2025-03-15 22:31 Laoshan_PLUS 阅读(21) 评论(0) 推荐(0)
摘要:后缀自动机 SAM 约定:字符串下标从 \(1\) 开始。 后缀自动机是一个强有力的数据结构,能在线性时间内解决以下这些关于字符串的问题。 在一个字符串中搜索另一个字符串的所有出现位置。 计算给定的字符串中有多少个不同的子串。 容易发现,这些问题都和 “子串” 有关。事实上,后缀自动机能解决的问题基 阅读全文
posted @ 2025-03-09 21:03 Laoshan_PLUS 阅读(60) 评论(0) 推荐(0)