04 2025 档案

摘要:多测不清空,爆零两行泪。 Multiple tests without reset, zero points with double regret. 思路 简单扫描线板子,个人认为比 P5490 【模板】扫描线 & 矩形面积并 简单。 介绍一个在扫描线中常见的技巧:不含边界的时候在边界上减去 \(0 阅读全文
posted @ 2025-04-28 22:08 Hootime 阅读(21) 评论(0) 推荐(0)
摘要:卡我空间几个意思 谨以此文祝福 FXY,WQX 百年好合,白头偕老。(不是)(没有)(真没有!) 思路 一道有 DP 标签的倍增水题。 见 \(m \le 10^{18}\) 思倍增,然后注意到不管在什么时候,从一个点跳到的下一个点都是固定的。于是一个 ST 表干了上去。 然后 MLE 了。 发现我 阅读全文
posted @ 2025-04-27 19:18 Hootime 阅读(48) 评论(0) 推荐(0)
摘要:竟然是《海上钢琴师》啊啊啊 以前做 P1725 琪露诺 的时候想过把这题升维会怎么样,没想到还真见到了。 思路 就是一个 DP + 一堆单调队列。 实现参考琪露诺,按移动方向打 DP 就行了。注意遇到障碍的时候清队列,还有维护单调性的时候考虑偏移量。 于是,没了。 代码 #include <bits 阅读全文
posted @ 2025-04-24 20:13 Hootime 阅读(44) 评论(0) 推荐(0)
摘要:思路 一道简单状压 DP。 由数据范围可得大概率是状压或者爆搜,于是先考虑暴力构造然后判断。显然过不去。 于是开始状压。令 \(dp_{i,j}\) 为长度为 \(i\)、匹配情况为 \(j\) 的字符串个数,不难推出转移方程式。于是自动打表出“筛子”(位与的第二个参数)。 于是,没了。 代码 #i 阅读全文
posted @ 2025-04-23 16:49 Hootime 阅读(35) 评论(0) 推荐(0)
摘要:yuruilin2026 神犇的一生之敌 一年半没有打矩阵快速幂了,手生了(悲) 思路 由题目相邻两位的数字之差不超过 2 一眼构造出转移矩阵: \[\begin{bmatrix} 1 & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 1 & 1 & 1 & 1 & 0 阅读全文
posted @ 2025-04-22 22:16 Hootime 阅读(10) 评论(0) 推荐(0)
摘要:校内模拟赛 T3,恭喜 yuruilin2026 神犇拿下首 A。 思路 一眼线段树,然而线段树被卡了。 于是思考每次查询 \(\mathcal{O}(1)\) 的做法,一眼 ST 表。 思考本题的“LIS”构造,显然是一堆 \(0\) 接上一堆 \(1\)。于是用前缀和统计两种数,ST 表构造的时 阅读全文
posted @ 2025-04-21 20:04 Hootime 阅读(32) 评论(0) 推荐(0)
摘要:校内模拟赛 T2,恭喜 lijunxi2026 拿下首 A。 赛时被 Hack 在了 #19,但是因为有 100pts 了就没有去管它,后来才调出来。 思路 首先注意小 Q。因为他选择时 \(x\) 已经确定,那么直接选可能造成最小分数的一个即可。 那么注意小 P,显然他的任务是让他选择的 \(x\ 阅读全文
posted @ 2025-04-21 19:55 Hootime 阅读(51) 评论(0) 推荐(0)
摘要:校内模拟赛 T1,恭喜 lijunxi2026 神犇拿下首 A。 思路 一个很水的 Sparse Table + 断环为链。对于一个询问点,直接二分左右就行了。注意要判断距离 \(\le n\)(不能取到自身)。 于是,没了。 代码 #include <bits/stdc++.h> #define 阅读全文
posted @ 2025-04-21 19:38 Hootime 阅读(19) 评论(0) 推荐(0)
摘要:一道好题,最开始想出来了正解然后被自己否了,想了半个小时没想出来看了题解才发现。 思路 很明显这道题的答案最大是 \(n\)(全部竖着涂)。 这道题的填涂方法有两种:横涂和竖涂。显然我们可以横涂直到触碰到最小高度,然后图就被分割成了若干份。然后分治处理,取横涂和竖涂最优即可。 于是,没了。 代码 # 阅读全文
posted @ 2025-04-20 17:53 Hootime 阅读(20) 评论(0) 推荐(0)
摘要:其实就是炮兵阵地的改版,但是改得不多。 思路 预处理每一行的合法状况,然后跑一遍状压 DP 就行了。注意放置国王的位置有限制。 另外警示后人: 十年 OI 一场空,不开________见祖宗; 枚举已经放置的国王数量的时候从 \(0\) 开始。 然后,没了。 代码 #include <bits/st 阅读全文
posted @ 2025-04-20 17:14 Hootime 阅读(45) 评论(0) 推荐(0)
摘要:思路 就是一个分组背包上树,以子节点的结果当作父节点的物品。然后做一个化边权为点权。 于是没了。 #include <bits/stdc++.h> #define rint register int #define rllong register long long #define llong lo 阅读全文
posted @ 2025-04-20 15:10 Hootime 阅读(10) 评论(0) 推荐(0)
摘要:好水的题…… 思路 一道裸的数位 DP。先把 \(100 \sim 999\) 的质数打出来,然后注意到一个三素数数中每两个素数有两位重叠,于是 DP 即可。 记得开滚动数组。 代码 #include <bits/stdc++.h> #define rint register int #define 阅读全文
posted @ 2025-04-20 13:51 Hootime 阅读(34) 评论(0) 推荐(0)
摘要:神犇 LEMON_dasiy 推荐的题目,果然做不出来。 思路 首先定义状态 \(f_i = \sum_{j = 1}^{i} F(i,j)\)。显然 \(f_1 = 2\)(取 \(a_1\) 或 \(\emptyset\))。 然后,假设没有重复的元素,那么就有组合和单干两种选择。 组合:和前面 阅读全文
posted @ 2025-04-19 12:09 Hootime 阅读(24) 评论(0) 推荐(0)
摘要:yuruilin2026:这道题你还做不出来? 这是一道不怎么简单的简单题。 思路 首先考虑暴力。把每名战士的作用发挥到极致,暴力跳即可。复杂度 \(O(n^2)\)。 但是注意一个“跳”字。既然是跳,那为什么不用 ST 表跳? 于是维护一个 ST 表表示一个战士跳 \(2^n\) 个战士能跳到的最 阅读全文
posted @ 2025-04-19 09:54 Hootime 阅读(28) 评论(0) 推荐(0)
摘要:一道简单题,可惜我最开始没做出来,经过一位神犇的指导才 AC。 思路 首先考虑 Kruskal。但是复杂度 \(O(n^2 \log n^2)\),别想了。 但是注意到有很多边(同一行/列)的权值是一样的,于是直接把行/列排序,然后贪心。但是注意判一下环,不然就不是生成树了。 判环很简单,令已经加入 阅读全文
posted @ 2025-04-18 19:59 Hootime 阅读(90) 评论(2) 推荐(0)