- gf24240 的博客
笔记:集训内容 2
- @ 2026-7-29 13:57:55
前言
警示后人
由于 BCOI 功能的漏洞 在写 blog 退出时不能保存。导致我本来写了一小时的东西全都没了。
所以写 blog 一定要及时保存。
去了本部集训才知道 dxd 一小时讲 5 道选择题是多珍贵。
这里没有对集训内容的总结
这里集训真是越来越水了。一点新的内容都没有讲。
硬要说的话,一堆模拟赛和杂题可以提供经验。
Day 0
7:00 整理宿舍内务。8:30 在机房集合,收电子设备。
以下内容提醒:
- 不是我想写这么短的,是 FSJ 讲的本来就这么短。
- 原题和链接并不一定完全一样,差不多。
- 不要看这些题目标题,是我乱写的。
Day 1
上午模拟赛,下午讲题。
- 天使之城。这是一道栈的语法题。
T1 都没做出来是连语法都没学完吗? - 通过 、、 变成 的最小次数。这是一道记忆化搜索。但当时我写了一个双向 BFS 超时了。
- 打赌。这是一道模拟,还要通过 % 运算来优化。
- 路标设置。这是二分。注意若指数为 ,在 区间应该是 个而不是 个。
- 关灯。线段树模板。
- 交换地砖。这是动态规划。定义 表示用 块地砖拼成面积 的最小代价。通过将 换成 转移。
Day 2
做和讲了一些杂题。FSJ 讲题真好,每道题都控制在 以内。
- awa 的海报。语法题。
- 幻想大战猪(?)。这题竟然只有入门!??枚举每一个子串的中心,向两边拓展。直到两边不一样。
虽然我是用记忆化搜索过的。 - 给你一个 行 列的字符矩形,其中不是 就是 。现在你可以任选行与列,将其去掉,使得剩下的行列中,包括的 有且只有 个,求有多少种不同的选择方式。这题是个状压,但不是 dp。枚举 ~ ,第 为表示 是否删除。 同理。由于数据很小,这样可以过。
- 图形。就是模拟,但细节很多。
- 零食塔。按第一个数排序,然后对第二个数 LIS 就好了。
- 最大价值。我是按照 FSJ 的做法写的。但是没有 AC。可以自己去洛谷上看。
- 压缩 maojun。
没办法,将就着看吧。可以逆向思考,。设为 ,每次将 设为 就好了。 - 线段复杂度。可以计算每条线段对总和的贡献。第 的贡献为:。 是所有 ,且 的数量。
- 剩下的我没有 AC 就只放个题目了:「飞犇」快递、平衡的字符串、创世。
Day 3
这场比赛是个学长讲的。比 FSJ 好一点,但不多。
复制于:https://www.cnblogs.com/Fall-wendywan/p/21762382 。经 DeePseek 加工。
T1 VJEKO 模拟,星号唯一:判断前缀+后缀匹配文件名,且首尾匹配。Code.
T2 Number of Pairs 排序后对每个数二分合法左右端点, 统计。
T3 Riko 每根棍子只能分成两段。若全断为两截,则 必须为偶数,排序首尾配对检查;否则有未断的,扫一遍记录即可。
T4 相聚 排序后 DP:设 为前 只的最小代价,转移 $f[i] = min(f[i-2] + a[i]-a[i-1], f[i-3] + a[i]-a[i-2])$。
T5 Vlad and Avoiding X 暴搜优化:黑白染色分治,互相影响的格子同色;答案上界为操作中间 个格子,搜索时剪枝。
T6 Bullet 将条件转化为 ,价值相同的鱼不能共存。总方案 ,用 map 统计最简分数(注意负号和零值),排除冲突组合,最后减去全空情况。
黑白染色
就是这样子的:
记住它,后面会用到。
Day 4
做和讲了二些杂题。好在这一天我们拿到了「电脑开智代码」,于是就能愉快地使用 AI 进行学习(Chao'Xi)了。
-
awk 的序列。这题可用双端队列维护。反转奇数次就把开头当成结尾,结尾当成开头。
-
awk 分水果。暴力会超时。可以利用 BFS 思路遍历网格。网格 表示 。将 和 排序后, 将是最小的,向 递增。按照 BFS 遍历即可。
-
复制 + 1。这竟然是 普及-?容易发现,一定是先做加一,然后到达一定数字后一直复制。于是就可以枚举 ,计算 的步数,即 。
-
交换一个奇数的其中两位,求出能构造出的最大偶数。若不行,则输出 。容易发现,一定要交换前面的一位偶数和最后一位。遍历原串,是偶数就构造出来。在所有构造出来的字符串中取最小的就好了。
-
一个 的网格,每次选相邻的两格 或 ,问是否能将所有数变成 。这题我也不知道自己是怎么想出来的,大概是前几天的模拟赛的题目:黑白染色,黑格总和与白格总和相等,则可以,否则不行。
-
乱打机。可以发现数字之间会有环。例如样例 1:。对于没有被减掉的列,求出所有数字的 LCM,这就是这一段的整体环。要求 的环数,就可以用 的环数减去 的环数。 的环数为:, 为整体环长度。
-
给定 和质数 。对每个 ,定义 为:所有 阶排列中,满足 排列字典序 < 其逆排列字典序 的数量对 取模。输出 。
可以计算 的数量,再用总数 减去即可。 的数量可用递推求出。定义 表示长度为 的 , 的数量。。
-
石头剪刀布。这是个概率 DP(?)。定义 表示石头剪刀布分别有 只的概率。通过相互战争减少数量和发生概率转移:
$$dp_{i,j-1,k}=dp_{i,j-1,k}+dp_{i,j,k}\times \dfrac{ij}{ij+ik+jk} \texttt{(石头和剪刀相遇)} \\ dp_{i-1,j,k}=dp_{i-1,j,k}+dp_{i,j,k}\times\dfrac{ik}{ij+ik+jk} \texttt{(石头和布相遇)} \\ dp_{i,j,k-1}=dp_{i,j,k-1}+dp_{i,j,k}\times\dfrac{jk}{ij+ik+jk} \texttt{(剪刀和布相遇)}$$初始化:。
答案:$R=\sum_{i=1}^{r}dp_{i,0,0},S=\sum_{j=1}^{s}dp_{0,j,0},P=\sum_{k=1}^{p}dp_{0,0,k}$。
-
数列。但是我没有 AC。
Day 5
模拟赛。怎么隔一天一场模拟赛啊。
- 加密。语法题。
- 海港。可以使用一个滑动窗口,加入的时候增加相应的国家,弹出(队首时间距离当前点超过 小时)时减少相应的国家。如果某个国家 ,那么国家种类增加 。反之则减少 。按时输出即可。
- P16227、P2440。这两道很像。就是二分最大值最小。
- 这和 +1-1×2 那题是一样的。
- 从 个数中选 个配成 对,使每对差的平方和最小,。 这可以用动态规划。定义 表示前 只筷子组成 双的最小方差。再枚举一个 表示将 与 配对,从而转移。答案即为 。
- 倒立的奶牛。这题我搬到 GF24 里了。但原题数据在 以内。 可以考虑从右下角开始统计。且右下角如果为 那么是一定需要全局反转而不能通过其他矩形来反转的。反转之后递归 和 。按照递归的思维,现在这两个点是右下角了,如果为 就必须进行反转。直到 ,反转次数就是答案。
Day 6
做了三些杂题。但是都是思维题。思维题最好了,讲完就懂。而且今天是 677 讲,他会给代码。
-
给定一个只含 和 的字符串 ,长度为 。称一个子串是 good,当且仅当子串中的 每一个字符 都至少属于这个子串内的某个长度至少为 的回文子串。你需要统计 的所有子串中,good 子串的总数。 这可以枚举所有 bad 串,然后用总数 减去。bad 串的形式:、、、。统计这四种情况的数量,用总数减去。
-
石头游戏。有 堆石子,每堆有 个。两人轮流取石子,T 先手。每次只能从某一堆取 个,但不能取上一轮被取过的那一堆。谁无法行动(所有堆都为空,或只剩上一轮被取过的那一堆非空),谁就输。问:每组判断 T 赢还是 HL 赢。
- 如果有一堆的数量 严格 超过总数的一半。那么先手一直拿这一堆,另一个人就会输。
- 如果总数是奇数,先手赢;偶数反之。
-
字符游戏。注意到, 与 和 都可以交换。所以所有 都可以自由移动。所以只需要在 之前输出所有 即可。
-
有三个背包,每个背包里有若干整数。 每次操作选两个不同的背包,从第一个背包取一个数 ,从第二个背包取一个数 ,然后把 放回第三个背包。重复操作,直到只剩一个数为止。问这个最终的数最大可能是多少。 有两种情况:
- 分别在两个背包中取出最小值最负贡献,其余做正贡献。
- 总和最小的背包整体做负贡献,其余背包做正贡献。
-
鱼货替换。注意到与或操作并不会改变数字内每一位上 的总数。于是考虑将 都往前推,组成 这样的。统计每一位 的数量,构造出这些数字,统计平方和即可。
-
疑惑枪。注意到如果有 个及以上的相同的数字,那么一定可以异或起来组成更小。例如:。可以将第 和第 个 异或起来得到 ,这样 ,就不是完美的了。同时注意到 不会超过 位,因此如果数量超过 ,就会出现三个重复的,就能直接 次解决。
也就是说这样就将 缩小到 ,那就可以暴力乱搞了。枚举每一个区间,判断将这个区间异或起来能不能解决。取最小值。如果都不能,就输出 。
-
中位数。容易发现以下性质:
- 没有 一定不行。
- 有两个连续的 一定可以。
- 如果有连续的两个数大于等于 ,那一定可以。
- 如果有间隔一个数的两个数大于等于 ,那一定可以。 按照这些模拟即可。
-
power_bound。如下表格:
格子 1 2 3 4 ... m 1. 1 2. ... ... n ... 好像不是很直观。提取出所有 的倍数:
格子 1 2 3 4 ... m 2. ... 4. 8. 你就会发现:只需要考虑指数相同就好了。这可以递推。定义 表示前 列有多少个指数相同的。因为 ,可只计算前 列。后面统计以 为底有多少个数。计算总和即可。
Day 7
模拟赛。太好了,过完今天就结束了。