MX 练石 2025 NOIP #10
笑点解析:NOIP 模拟赛。
2025 --【炼石计划 NOIP】-- 第十套
时间:4h20min (2025.09.28 07:40~12:10)
题目数:4
难度:
| A | B | C | D |
|---|---|---|---|
| \(\color{#3498DB} 蓝\) | \(\color{#52C41A} 绿\) | \(\color{#BFBFBF} ?\) | \(\color{#BFBFBF} ?\) |
| *2100 | *1700 | *? | *? |
估分:0 + 40 + 25 + 0 = 65
得分:0 + 45 + 10 + 0 = 55
Rank:35/159
场祭
读题。
A,很确定是个 dp,胡了一个有点对的思路,感觉好像不可以。
B,一眼分治,然后发现不可以,我知道 \(m \le 3\) 肯定很有用,但是 \(m > 1\) 的时候怎么记录 trie 上查询到的每个 LCP 属于哪个 \(j\) 啊?
打了 30pts 暴力 + 10pts \(m=1\) 的特殊性质跑路。
回去看 A,推了推 dp,令 \(f_{i,j}\) 为 \((0,0) \leadsto (i,j)\) 的答案,再记录一个 \(v_{i,j}\) 表示是否能从 \((i,j)\) 不经过任何障碍的覆盖区走到 \((n,m)\),然后转移 \(f_{i,j}\) 的时候如果 \(v_{i,j} = 0\) 则转移 \(1\) 否则为 \(f_{i,j} + 1\),写写写挂了,发现我甚至忘了考虑有没有经过哪个障碍的覆盖区。
不会了,打暴力吧,但是暴力好像也不会。
C,暴力打了,\(k=0\) 特殊性子打了。
D,没时间了,打了个错误的暴力。赛后才发现暴力原来这么多分 /fn
补题
A,不容易注意到,在形成右上左下关系且相邻的障碍可以合并为一个矩形,例如:
....
..#.
.#..
....
显然 \((2,2)\) 和 \((3,3)\) 是走不了的,所以可以直接视作这样:
....
.##.
.##.
....
然后,图中就只剩下若干个不能合并的矩形了。
进一步发现,八连通的矩形都是可以视作同一个障碍的(但不能和上面一样合并),例如:
......
.##...
.##...
...##.
...##.
......
显然经过的路径要不从上面走,不被这两个矩形偏序;要不从下面走,同时被这两个矩形偏序。
再例如:
......
.##...
......
...##.
...##.
......
这样就可以有不被偏序、被上面的矩形偏序、被两个矩形偏序这三种选择了。
所以可以猜测,答案就是八连通块的个数 \(+1\)。根据人类直觉这是正确的。
不过要注意矩形在边界上的情况,因为一条路径一定会被右边界、上边界的矩形偏序,且一定不会被左边界、下边界的矩形偏序。
第一步合并时必要的,因为:
..#..
.#...
...#.
..#..
.....
答案显然为 \(1\),与合并后的连通块个数相符。
草怎么还是一堆 WA 不补了。
喂给 gpt,哦原来合并不能只进行一次吗,那就多跑几遍直到没有可合并的了。
多过了好多点,但还是一推 WA + 几个 T(
终于过了,不直接判断,而是放到一个函数里,每次对于一个 #,判断右上和左下是否是 #,如果是则扩展出去,对于除了当前位置外的另外 \(3\) 个位置调用函数。就神必地过掉了。
补 B。
其实是 min-max 容斥嘛,相信大家都会。——出题人
min-max 容斥(极值反演):
放到这个题上,求 max 就可以转化成求 \(7\) 个 min(分别对应 \(\{0,1,2\}\) 的 \(7\) 个真子集)。
然后这一步有点难想到,就是把两个串 \(a_{1 \sim p} , b_{1 \sim q}\) 一位一位地拼起来得到 \(a_1 b_1 a_2 b_2 \ldots\) 这样的串,然后对 \(n\) 个这个奇怪的东西建一棵 trie,LCP 就和 \(m=1\) 时一样求就可以了,第一次不匹配的位置 \(pos\) 对应的 LCP 长度就是 \(\lfloor \frac {dep_{pos}} {子集大小}\rfloor\),推广一下建 \(7\) 棵 trie 就可以把所有 min 求出来了。
有点神奇。不过在人类可以想到的范围内。
但是不会 min-max 反演的说()
天依宝宝可爱!

浙公网安备 33010602011771号