随笔分类 - OJ——洛谷
摘要:\(Description\) Luogu传送门 \(Solution\) CDQ分治板题 由于找一个矩形并不好处理,利用类似于二维前缀和的思想,把一个矩形拆成从 \((1, 1)\) 开始的 4 个矩形。 具体是哪 4 个从 \((1, 1)\) 开始的矩形自己手推一下吧,懒得打了。 考虑什么样的
阅读全文
摘要:\(Description\) Luogu传送门 \(Solution\) 偶然发现这道题所以来做做。 刚开始看完题的时候感觉这只能暴力模拟…… 于是不要脸的看了一眼题解之后,我们可以用一些表达式来表示每头奶牛到达它应该到的位置的时间,从而计算出总共时间。 具体来说,第 \(n\) 头牛到达其位置所
阅读全文
摘要:\(Description\) Luogu传送门 \(Solution\) 带修莫队板子题。 就是再多开一维时间轴,把每次修改修改前的颜色和修改后的颜色都记录下来。 离线处理。 枚举操作时,类似于普通的莫队,while(操作时间) 看看是该插入还是删除,然后直接修改就完了。 贴下代码吧,直接看代码比
阅读全文
摘要:\(Description\) Luogu传送门 \(Solution\) 早就想做这道 P2048 了,但是之前太菜了,不会 QwQ RMQ + 前缀和 + 堆 显然要做一个前缀和,但是做完前缀和之后暴力枚举区间显然是不行的。 考虑一下我们到底要计算什么: 对于一个点 \(u\),我们要计算 \(
阅读全文
摘要:\(Description\) Luogu传送门 \(Solution\) 01trie + 堆 考虑对原数组做个前缀异或和,然后原问题就变成了找 \(k\) 对不都相同的点对,使它们异或起来的和最大。 显然我们要找出前 \(k\) 大的点对 \((l, r)\),但是 \(l\) 要小于 \(r\
阅读全文
摘要:Description Luogu传送门 Solution 观察到数据范围: 对于 \(50\%\) 的数据,满足 \(R,C \leq 200\) 另有 \(50\%\) 的数据,满足 \(R = 1, C \leq 5 \times 10^5\) …… 明显要进行数据分治了。。 Subtask_
阅读全文
摘要:主席树的最基础的操作就是查询历史版本区间第 \(k\) 大,带修。 这个问题的基础解决思路:对于每次修改都建一棵权值线段树,显然空间开不下。 这时可持久化线段树的思路就应运而生了。 主要思想: 不难发现,每次修改只会有一条链上的值发生改变,所以我们不需要建出整棵新树,只需要把新建那条链上的点即可。
阅读全文
摘要:Description Luogu传送门 Solution 顾名思义,我们要实现的就是可持久化文艺平衡树,也就是带修的文艺平衡树。 前置知识:文艺平衡树,可持久化平衡树 对于每次修改,我们要新建出被修改的那棵子树,所有的修改及查询操作全都是在要求的版本中进行。 修改之后建出新的版本。 我写的时候直接
阅读全文
摘要:Descirption Luogu传送门 Solution 主席树 + LCA + 树上差分 看到 查询第 \(k\) 小的点权,自然想到主席树。 那么这道题就是在一棵树上维护一个主席树。 考虑一个数列上的主席树是如何建的,转换到一棵树上应该不难吧( 再来看两个点间的区间第 \(k\) 小如何找。
阅读全文
摘要:Description Luogu传送门 Solution 考虑使用平衡树维护 hash 值。 一个点的 sum 值表示这个点所在子树的 hash 值,那么如何更新呢? 应该还是比较简单的吧,就是: \[ 左子树_{sum} \times (右子树_{siz} + 1) + 根_{val} \tim
阅读全文
摘要:不打算详细写了,强推一波 yyb 神仙的博客 Splay入门解析【保证让你看不懂(滑稽)】 (这篇博客的代码完全是按照 yyb 的博客写的,并有一些补充,包括 pushup 及查询第 k 大的整数等等) 这里列几个注意事项吧: \(Splay\) 过程中,如果 \(x, y\) 为同一种儿子,那么先
阅读全文
摘要:Description Luogu传送门 Solution 题目要求我们找到第 \(i\) 的数,其实就维护一下剩下的数中最小值在哪里即可。 我们考虑使用 \(fhq-treap\)。 说一下具体实现过程: 找到剩下的点中的最小值(其实就是根)。 输出答案,删去它,合并它的两个儿子。 维护区间翻转标
阅读全文
摘要:Description Luogu传送门 Solution 题目要求我们找到第 \(i\) 的数,其实就维护一下剩下的数中最小值在哪里即可。 我们考虑使用 \(fhq-treap\)。 说一下具体实现过程: 找到剩下的点中的最小值(其实就是根)。 输出答案,删去它,合并它的两个儿子。 维护区间翻转标
阅读全文
摘要:Description Luogu传送门 Solution 不打算详细写了,简单写写做题历程。 一看题,显然要用线段树维护,但是 \(c^{a_i}\) 这东西怎存?? 于是看了一眼标签,发现 欧拉公式 这个东西,于是想到欧拉定理。 再联想到区间开方的操作只有前 \(\sqrt n\) 次有用。发现
阅读全文
摘要:前言 说是学习笔记,其实窝并没有打算写太多(太麻烦了,而且我的理解还不是特别深,可能也写不清楚),所以打算大概写两句,然后贴个板子。 前置知识 \(Miller-Rabin\) 素性测试。 倍增基础应用。 \(Miller-Rabin\) 素性测试 我们知道有费马小定理: \(a^{p - 1} \
阅读全文
摘要:Description Luogu传送门 Solution 标签里就俩东西,没错就是他们了。 观察到 4,5,6 操作中需要用到一个常数 \(v\),所以我们的矩阵得开到 1 * 4,存 \((A, B, C, 1)\)。 至于转移的 6 个矩阵这里就不推了,比较基础(不会真的有人来做这道题了连矩阵
阅读全文
摘要:Description Luogu传送门 Solution 加强版就只是纯粹的加强版,取模可以省掉,直接自然溢出即可,还是简单讲一讲吧。 首先,我们不难发现,\(f(x) = \mu^2(x)\)。 然后就是一波基础而不失难度的推式子。 \[ \begin{aligned} & \sum\limit
阅读全文
摘要:Description 洛谷 P6156 简单题 Solution 题意非常清晰明了。 首先,我们不难发现,\(f(x) = \mu^2(x)\)。 然后就是一波基础而不失难度的推式子。 \[ \begin{aligned} & \sum\limits_{i = 1}^n\sum_{j = 1}^n
阅读全文
摘要:Description Luogu传送门 SOlution 题意非常清晰明了,下面我们来谈一谈如何求解。 直接求是不太行的,所以我们把输入的属放到一个桶里面,设为 \(t\)。 那么我们最终要求的答案就是: \[ \sum_{i=1}^n\sum_{j=1}^n lcm(i,j)\times t[i
阅读全文
摘要:持续更新中~(尽量不咕) P1650 田忌赛马 有很明显的贪心思路,用田忌最烂的马去怼齐王最好的马。 由于田忌是有主动权的,所以我们直接让齐王从优到劣出马。 设计 \(dp\) 状态: 普通 \(dp\): \(dp_{i, j}\) 表示齐王的前 \(i\) 匹马,对上了田忌的前 \(j\) 匹马
阅读全文