随笔分类 - 题解
摘要:Link 有些人还是啥都不会。 看到题目应该能想到这是笛卡尔树的性质,因为每一对 \((l,r)\) 都满足最左端最大值位置相同,所以说明在笛卡尔树上,每一对点的 lca 相同,说明 \(a\) 和 \(b\) 序列的笛卡尔树相同。 我们以下标为键,\(a_i\) 为值建立大根笛卡尔树,现在题目就转
阅读全文
摘要:Link 对于大众来说权值线段树的入门题,一道写起来让我破防的题目。 首先很套路的固定最大值 xxx,这时候考虑什么时候答案最小。 首先所有大于 xxx 的腿我们要删掉,记这个和为 sss。其次发现,删掉长度等于 xxx 的腿必然是不优的,因为删去了长度等于 xxx 的腿代表我还要删掉更多长度小于
阅读全文
摘要:P8776 [蓝桥杯 2022 省 A] 最长不下降子序列 原来是自己的代码能力差。 注意题目要求的是最长不下降子序列,别搞成了最长上升子序列。 首先对于一般的求解最长不下降子序列是套路的,直接权值线段树优化动态规划即可。 假设枚举到了 iii,发现答案是由三部分组成,一部分是以 iii 为末尾的
阅读全文
摘要:Link 不禁让人加深了对 2-SAT 的感知度。 先考虑 d=0d=0d=0 的情况,这时候发现每个赛道其实只有两种取值,所以可以考虑 2-SAT,具体的,把每个点能取的两种取值看成 000 和 111,然后按照题目的限制连边即可。 然后发现 ddd 的范围很小,不难想到暴力取 x 的点应该用什么
阅读全文
摘要:Link 挺经典的题,是 P3209 [HNOI2010] 平面图判定 的无限弱化版。 考虑连边只会有两种情况,一种是连接的边在环内,一种是连接的边在环外,不妨定义在环内取 111,在环外取 000。 如果两条边同时连在环内或者同时在环外有相交的话,这时候就出现矛盾了,很显然,如果其中任意一条边取
阅读全文
摘要:Link 很板的题。 容易发现,每次操作相当于,总是前 mmm 小的数删除,然后在原序列里加入一个数,这个操作很好实现,直接考虑把原序列前 mmm 个数删掉,然后在最后一个位置加上新的数,然后对整个数组排序即可。 关于加入的这个数,是前 mmm 小的数的和,因为剩余最后一个生物质量是他们质量总和,这
阅读全文
摘要:Link 比较厉害的题。 简化问题,如果是不考虑吃能不能走的话,那很显然我们要求路径上最小边最大,这显然是重构树。 看能不能考虑建出重构树以后,往树上思考,能够发现,如果我每次吃了糖果,增加了宽度,那必然会造成一些边不能走,换言就是重构树上一些子树,我走不进去了。 这就把这个题转换成一个树上问题,我
阅读全文
摘要:Link Kuskral 重构树板子。 因为相对边权不变,所以重构树的形态不变。 那其实就是期望连通块内任意两个点路径的最小值最大。重构树内点的点权的含义就是他叶子节点相互抵达的路径上权值最大值。这个我们容易用重构树维护出来,然后实际上我们只用不断地往上跳到 >p>p>p 就停止即可。 #inclu
阅读全文
摘要:Link 梳理思路。 尽可能讲的清晰些。 首先考虑贪心交替染色,但是不正确的,反例就是一个端点左右各一车子点,这样以这个端点为中转站,一边全部填 000,另一边全部填 111 更优秀。 稍微观察题目就能发现,题目能取到的 mex\operatorname{mex}mex 仅在 [0,2][0,2]
阅读全文
摘要:[ABC340E] Mancala 2 线段树板题,为了方便,从 111 开始标号。 直接考虑每次操作,每个人的排位构成一个环,就是把当前的人的球拿走,然后不断往后传,传到谁谁拿一个,传完就结束。 因为 aia_iai 很大,我们不能直接模拟传球的过程,所以不妨直接计算能传多少轮(也就是走一圈回到
阅读全文
摘要:Link 考虑把这题转换为图论模型。 按照题意,就是 iii 和 i+1i+1i+1 有一条长度为 aia_iai 的边,iii 和 XiX_iXi 有一条长度为 bib_ibi 的边。 然后跑最短路即可。 #include<bits/stdc++.h> using namespace std
阅读全文
摘要:Link 很一眼的题。 考虑动态规划,设 dpidp_idpi 表示以当前这个位置为结尾能取到的最大值,满足条件的 jjj 仅当 ∣ai−aj∣≤D|a_i-a_j|\le D∣ai−aj∣≤D 且 i<ji<ji<j,转移就是: dpi=max(dpi,dpj+1)dp_i=\max(dp
阅读全文
摘要:Link 随机化题。 首先读入应该使用字符串的读入方式,然后如果是直接暴力高精度的话,时间是 O(n2len)O(n^2len)O(n2len) 的,难以通过,看能不能对这个乘法进行优化。 问题在于这些整数的长度都很大,所以因为如果 a×b=ca\times b=ca×b=c,它同样满足 (a mo
阅读全文
摘要:[ABC338E] Chords 算是最简单的一道 E 了吧,很一眼。 不妨考虑枚举每一条线段,看有没有线段和他相交,记一个点 iii 所连出去的线段的另一个端点是 pip_ipi。 做法也很简单,就拿第二个样例作为举例,比如枚举到第二条线段时,我们只用找到 [2,5][2,5][2,5] 之间所
阅读全文
摘要:题目传送门 数据范围很小,直接考虑状压或者暴搜,这里考虑状压。 那就需要考虑我们选了一个集合 SSS,很自然能够想到把每个矩形是/否涂过色标记为 0/10/10/1,从而衍生为一个集合。 转移的话也很简单,在枚举所有集合 iii 的时候,直接枚举可以使用的颜色,大力模拟出来使用了当前画笔后的集合情况
阅读全文
摘要:link 看到数据范围 nnn 很小,考虑状压。 既然是状压,就考虑选了一个集合 SSS 会怎么样,不难发现,这里可以考虑选择走过的点当作集合,那么把走过的点对应的位置标记成 111,就能把它抽象成一个数了。 发现只有 SSS 还不够,设 dpi,jdp_{i,j}dpi,j 表示集合 iii,走
阅读全文
摘要:P10076 [GDKOI2024 普及组] 捉迷藏 赛时能 LCA 写挂,难评。 首先考虑先计算出两个人的距离,这个使用 LCA 即可。 首先可以发现,如果一个人击杀了另一个人,在这前一步绝对要控制一个距离使得对面不能攻击到自己,不然就被反杀了。 然后不难发现,如果先手可以一次性解决问题,那么先手
阅读全文
摘要:GDKOI PJ DAY1 T2 原。 终于有时间来补题了。 还是考虑二分答案,因为他要求最大值最小。 然后考虑怎么检验,考虑求出 si=x−ai+1s_i=x-a_i+1si=x−ai+1 表示打死当前这个怪物的最慢的时刻。如果 si<is_i<isi<i 则说明小于 iii 的位置都不可取
阅读全文
摘要:by Ecrade_ 结论: 记长度为 LLL 时对应的 XXX 最大值为 f(L)f(L)f(L),则 f(L)f(L)f(L) 单调不降。 证明: 对于任意长度 2≤L≤n−k+12\le L\le n-k+12≤L≤n−k+1,记 aaa 所有长度为 LLL 的子序列的极差依次为 p1,p2,
阅读全文
摘要:不难发现,我们期望把尽可能多的杯子里面的水集中到一个杯子里面去。 所以存在以下两种情况: 可以把所有杯子里面的水集中到一个杯子里面,这个时候答案就是 b×nb\times nb×n。 或者,一个杯子最多只能装下 ⌊ab⌋\lfloor \frac{a}{b} \rfloor⌊ba⌋ 个杯子中的全部
阅读全文