12 2021 档案
P2048 [NOI2010] 超级钢琴 题解
摘要:Description Luogu传送门 Solution 早就想做这道 P2048 了,但是之前太菜了,不会 QwQ RMQ + 前缀和 + 堆 显然要做一个前缀和,但是做完前缀和之后暴力枚举区间显然是不行的。 考虑一下我们到底要计算什么: 对于一个点 u,我们要计算 \(
P5283 [十二省联考 2019] 异或粽子 题解
摘要:Description Luogu传送门 Solution 01trie + 堆 考虑对原数组做个前缀异或和,然后原问题就变成了找 k 对不都相同的点对,使它们异或起来的和最大。 显然我们要找出前 k 大的点对 (l,r),但是 l 要小于 \(r\
P2468 [SDOI2010]粟粟的书架 题解
摘要:Description Luogu传送门 Solution 观察到数据范围: 对于 50% 的数据,满足 R,C≤200 另有 50% 的数据,满足 R=1,C≤5×105 …… 明显要进行数据分治了。。 Subtask_
AT2043 [AGC004C] AND Grid 题解
摘要:Description Luogu传送门 Solution 非常巧妙的构造题。 考虑先构造出不相交的矩阵,就是相当于两只手交叉的两个矩阵。 如下图: 然后再把输入的字符矩阵中是 # 的位置在两个矩阵中都赋值为 #,就能做到四联通且恰好覆盖了。 Code (附上丑陋的代码,懒得改了。) #includ
CF95E Lucky Country 题解
摘要:Desciption CF95E Lucky Country Solution 非常巧妙的 dp 题,sto xy学长 orz 同一个区域的岛屿明显只能在一起,所以用并查集合并一下同一区域内的岛屿。 然后我们要找出用最少的边连出一个幸运地区。 那这不就是一个背包吗! 朴素的状态:\(dp_{
『学习笔记』可持久化线段树(主席树)
摘要:主席树的最基础的操作就是查询历史版本区间第 k 大,带修。 这个问题的基础解决思路:对于每次修改都建一棵权值线段树,显然空间开不下。 这时可持久化线段树的思路就应运而生了。 主要思想: 不难发现,每次修改只会有一条链上的值发生改变,所以我们不需要建出整棵新树,只需要把新建那条链上的点即可。
P5055 【模板】可持久化文艺平衡树 题解
摘要:Description Luogu传送门 Solution 顾名思义,我们要实现的就是可持久化文艺平衡树,也就是带修的文艺平衡树。 前置知识:文艺平衡树,可持久化平衡树 对于每次修改,我们要新建出被修改的那棵子树,所有的修改及查询操作全都是在要求的版本中进行。 修改之后建出新的版本。 我写的时候直接
CF580D Kefa and Dishes 题解
摘要:Description Luogu传送门 Solution 好水的状压 dp…… 非常套路的状态,设 dpi,s 表示吃了状态为 s 的菜,且最后一个吃的是 i 的最大满意度。 那么如何转移呢? 枚举状态 s,枚举最后一个吃的 i,再枚举倒数第
P2633 Count on a tree 题解
摘要:Descirption Luogu传送门 Solution 主席树 + LCA + 树上差分 看到 查询第 k 小的点权,自然想到主席树。 那么这道题就是在一棵树上维护一个主席树。 考虑一个数列上的主席树是如何建的,转换到一棵树上应该不难吧( 再来看两个点间的区间第 k 小如何找。
P4036 [JSOI2008]火星人 题解
摘要:Description Luogu传送门 Solution 考虑使用平衡树维护 hash 值。 一个点的 sum 值表示这个点所在子树的 hash 值,那么如何更新呢? 应该还是比较简单的吧,就是: \[ 左子树_{sum} \times (右子树_{siz} + 1) + 根_{val} \tim
『学习笔记』Splay
摘要:不打算详细写了,强推一波 yyb 神仙的博客 Splay入门解析【保证让你看不懂(滑稽)】 (这篇博客的代码完全是按照 yyb 的博客写的,并有一些补充,包括 pushup 及查询第 k 大的整数等等) 这里列几个注意事项吧: Splay 过程中,如果 x,y 为同一种儿子,那么先
UVA1402 Robotic Sort 题解
摘要:Description Luogu传送门 Solution 题目要求我们找到第 i 的数,其实就维护一下剩下的数中最小值在哪里即可。 我们考虑使用 fhq−treap。 说一下具体实现过程: 找到剩下的点中的最小值(其实就是根)。 输出答案,删去它,合并它的两个儿子。 维护区间翻转标
P4402 [Cerc2007]robotic sort 机械排序 题解
摘要:Description Luogu传送门 Solution 题目要求我们找到第 i 的数,其实就维护一下剩下的数中最小值在哪里即可。 我们考虑使用 fhq−treap。 说一下具体实现过程: 找到剩下的点中的最小值(其实就是根)。 输出答案,删去它,合并它的两个儿子。 维护区间翻转标
CF702F T-Shirts 题解
摘要:Description Luogu传送门 Solution 先对物品按照品质从大到小排序,相同品质的按价格从小到大排序。 依次枚举每一个物品,考虑对于一个物品,其价格为 c,品质为 q: 拥有钱数小于 c 的人买不起,不用管。 拥有钱数大于等于 c 的人买得起,也必须
CF1575L Longest Array Deconstruction 题解
摘要:Description Luogu传送门 Solution 并不需要复杂的 DS( 考虑对于两个点 x,y (x<y),什么情况下才能使它们都有贡献。 第一个条件: ax<ay 这个比较显然吧,就不多说了。 第二个条件: \[ x - a_x \leq y - a_
P3747 [六省联考 2017] 相逢是问候 题解
摘要:Description Luogu传送门 Solution 不打算详细写了,简单写写做题历程。 一看题,显然要用线段树维护,但是 cai 这东西怎存?? 于是看了一眼标签,发现 欧拉公式 这个东西,于是想到欧拉定理。 再联想到区间开方的操作只有前 √n 次有用。发现
『学习笔记』Pollard-Rho 算法 题解
摘要:前言 说是学习笔记,其实窝并没有打算写太多(太麻烦了,而且我的理解还不是特别深,可能也写不清楚),所以打算大概写两句,然后贴个板子。 前置知识 Miller−Rabin 素性测试。 倍增基础应用。 Miller−Rabin 素性测试 我们知道有费马小定理: \(a^{p - 1} \
最大公约数之和
摘要:本文主要讲一下最大公约数的和的推导过程(因为其太过经典,其实是博主老忘)。 原式: n∑i=1n∑j=1gcd 莫比乌斯反演经典入门题。 话不多说,进入正文。 \[ \begin{aligned} & \sum\limits_{i = 1
AT2171 [AGC007D] Shik and Game 题解
摘要:Description Luogu传送门 Solution 考虑一下 Shik 走路的全过程——不停地来回走。 有的路段只经过了一次,有的经过了三次。 那么我们设 f_i 表示拿到了前 i 个金币所花费的最小时间,由于是最小时间,那么他必定在 a_i 这个位置上。 转移方程:
P7453 [THUSCH2017] 大魔法师 题解
摘要:Description Luogu传送门 Solution 标签里就俩东西,没错就是他们了。 观察到 4,5,6 操作中需要用到一个常数 v,所以我们的矩阵得开到 1 * 4,存 (A, B, C, 1)。 至于转移的 6 个矩阵这里就不推了,比较基础(不会真的有人来做这道题了连矩阵
UVA11327 Enumerating Rational Numbers 题解
摘要:Description Luogu传送门 Solution 又是一道诈骗题。 观察题目给出的伪代码,不难发现,对于每一个 d,合法的 n 的个数有 \varphi(d) 个。 但是 k 这么大,我们怎么求呢? 继续观察样例,可以发现,样例中给出了 k 取最大值
P6222 「P6156 简单题」加强版 题解
摘要:Description Luogu传送门 Solution 加强版就只是纯粹的加强版,取模可以省掉,直接自然溢出即可,还是简单讲一讲吧。 首先,我们不难发现,f(x) = \mu^2(x)。 然后就是一波基础而不失难度的推式子。 \[ \begin{aligned} & \sum\limit
P6156 简单题 题解
摘要:Description 洛谷 P6156 简单题 Solution 题意非常清晰明了。 首先,我们不难发现,f(x) = \mu^2(x)。 然后就是一波基础而不失难度的推式子。 \[ \begin{aligned} & \sum\limits_{i = 1}^n\sum_{j = 1}^n
AT5200 [AGC038C] LCMs 题解
摘要:Description Luogu传送门 SOlution 题意非常清晰明了,下面我们来谈一谈如何求解。 实际上跟 P3391 是一样的,我们先考虑 i 和 j 都从 1 开始的情况,即: \(\sum\limits_{i = 1}^n\sum\limits_{j = 1}^nlcm
P3911 最小公倍数之和 题解
摘要:Description Luogu传送门 SOlution 题意非常清晰明了,下面我们来谈一谈如何求解。 直接求是不太行的,所以我们把输入的属放到一个桶里面,设为 t。 那么我们最终要求的答案就是: \[ \sum_{i=1}^n\sum_{j=1}^n lcm(i,j)\times t[i
AT1982 [AGC001D] Arrays and Palindrome 题解
摘要:Description Luogu传送门 简单说一下题意吧。 就是输入一个长度为 m,元素和为 n 的序列 a,a 数组的定义就是题面中的含义。 你需要构造出一个 b 序列,同样也表示回文串的长度,使得只有全 1 的序列满足 a 和 b 这两个
dp 做题记录
摘要:持续更新中~(尽量不咕) P1650 田忌赛马 有很明显的贪心思路,用田忌最烂的马去怼齐王最好的马。 由于田忌是有主动权的,所以我们直接让齐王从优到劣出马。 设计 dp 状态: 普通 dp: dp_{i, j} 表示齐王的前 i 匹马,对上了田忌的前 j 匹马
P1390 公约数的和 题解
摘要:Description Luogu传送门 Solution 莫比乌斯反演经典入门题。 题目里面各种推式子的过程也很经典。 话不多说,进入正文。 我们先不管题目,求 \sum\limits_{i = 1}^n\sum\limits_{j = 1}^ngcd(i, j) 下面就是一波愉快的推式子
数论小总结『杂』
摘要:常见的数论函数 恒等函数: I(n) = 1 元函数: \epsilon(n) = [n = 1] 单位函数: id(n) = n 除数函数:输出函数用 \sigma_k(n) 表示 n 的 k 次方的的和,即 \(\sigma_k(n) = \sum
UVA12298 Super Poker II 题解
摘要:Description Luogu传送门 Solution 其实就是个 NTT 多项式乘法板子。 我不会告诉你我一开始还推了半天生成函数(然后发现直接把 5e4 的系数全都直接赋值就完了QwQ 那么本题的解法就是这样 开 4 个数组,表示 4 种花色的多项式。对于每一组数据,暴力把每一位的系数都赋上
P3723 [AH2017/HNOI2017]礼物 题解
摘要:Description Luogu传送门 Solution 不难发现,将其中一个手环中所有装饰物的亮度增加一个相同的非负整数 c,可以转化成对其中一个手环增加 c\ (c \in Z)。那么最终的差异值就是: \[ \sum\limits_{i = 1}^{n}(a_i - b_i
P4199 万径人踪灭 题解
摘要:Description Luogu传送门 Solution 好名字。 像我这种懒狗肯定是直接看简化版题意啊! 题意让我们求不连续的回文子序列个数,我们发现并不是很好求,所以转换一下思路,求: 回文子序列个数(可连续) - 回文子串个数 回文子串个数很容易求出来,就是 manacher 板子,