zhjzhmh的随机跳题题解蓝1

CF272E Dima and Horses updated on 2025/5/10
思维:7
代码:3
详见此处

CF1706E Qpwoeirut and Vertices updated on 2025/5/10
思维:6
代码:5
看到这个至少加前几条边,考虑使用 \(\text{kruskal}\) 重构树,设置边权为读入的编号,然后直接建树,\(u\)\(v\) 连接的最大边权的最小值就是它们最近公共祖先的点权,因为 \([l,r]\) 联通等价于该区域内相邻两点联通,于是预处理出相邻两点的代价,然后用 ST 表维护区间 \(\max\) 即可。

P2102 地砖铺设 updated on 2025/5/11
思维:5
代码:6
首先由四色定理,显然只会用到 \(4\) 种颜色,显然策略为“判断下一个点能不能放比当前小的颜色,若不能则继续拓展,反之退出拓展”。然后搜索即可。

P4611 [COI 2012] TRAMPOLIN updated on 2025/5/23
思维:6
代码:4
先考虑初始点无法跳到任何一个蹦床上去,那么这种情况的最大楼房数就只能是与它相邻的连续左边或右边一段数,这个判断一下就好了。再来考虑初始点能跳到蹦床上去。我们发现,如果某一个点可以跳到蹦床,那么相当于这个楼房也是一个蹦床。于是我们把与蹦床可以跳到的位置全都改成蹦床,那么这些与蹦床相邻的点都可以被跳到。那么跳完了所有与蹦床相邻的点后怎么办?再找一段最大的没有与蹦床相邻的点跳过去,这些就是答案。

P5304 [GXOI/GZOI2019] 旅行者 updated on 2025/5/23
思维:8
代码:5
考虑把特殊点分成两组,不妨记为 \(A\)\(B\),将 \(A\) 中的点连源点的零权边,将 \(B\) 中的点连汇点的零权边,那么从源点到汇点的最短路就是 \(A\)\(B\) 的最短路。把特殊点按二进制位不同分类,第 \(i\) 次最短路把下标第 \(i\) 位为 \(0\) 的点放在 \(A\) 中,\(B\) 反之。不难得出,任意的特殊点间的最短路的起点与终点二进制必定有一位不同。因此用这个方法跑 \(\log k\) 次一定能出结果。

P5679 [GZOI2017] 等差子序列 updated on 2025/5/24
思维:8
代码:3
考虑三元组 \((i,j,k)\),若 \(a_j-a_i=a_k-a_j\),移项得 \(a_k=2\times a_j-a_i\),设 \(C\) 为值域,则有 \(a_k+C=2\times a_j-a_i+C\),用两个 \(\text{bitset}\) 进行维护,一个维护 \(C-a_i\),一个维护 \(2\times a_j-a_i\),容易发现构造第二个 \(\text{bitset}\) 只需将第一个 \(\text{bitset}\) 左移 \(2\times a_j\) 位即可。

P6521 [CEOI 2010] pin (day2) updated on 2025/5/24
思维:7
代码:5
不妨考虑容斥及正难则反,把不同转化为相同,用哈希计数相同的最后容斥(不会)

P7140 [THUPC 2021 初赛] 区间矩阵乘法 updated on 2025/5/24
思维:7
代码:6
考虑\(\sum_{i=0}^{d-1} \sum_{h=0}^{d-1} \sum_{k=0}^{d-1} a_{p_1+d\times i+j}\times a_{p_2+d\times j+k}=\sum_{j=0}^{d-1} (\sum_{i=0}^{d-1} a_{p_1+d\times i+j})(\sum_{k=0}^{d-1} a_{p_2+d\times j+k})\)。看到这个式子考虑前缀和。考虑如下问题:给定一个序列,每次询问给定 \(x,y\),问 \(y+kx(k\in N)\) 的位置上的和。那么有 \(x\ge sqrt(n)\) 直接暴力跑,对于 \(x\le sqrt(n)\)\(f_{i,j}\) 预处理保存即可。

P10463 Interval GCD updated on 2025/5/24
思维:6
代码:4
比较典的蓝题,挺有意思的。对于区间 \(\gcd\) 问题,单点加是显然的。对于区间加,考虑差分,差分显然不会使 \(\gcd\) 值改变,做法成立。

posted @ 2025-05-24 22:28  zhjzhmh  阅读(9)  评论(0)    收藏  举报