? #1

比较常规了。


【并非真正名称】2025年省一冲刺训练(七)--NOIP级

链接:link
题解:link

时间:4h (2025.08.28 07:30~11:30)
题目数:4
难度:

A B C D
\(\color{#FFC116} 黄\) \(\color{#52C41A} 绿\) \(\color{#9D3DCF} 紫\) \(\color{#3498DB} 蓝\)
*1500 *1700 *? *2000

估分:100 + 100 + 30 + 20 = 250
得分:100 + 100 + 10 + 20 = 230
Rank:1/5


场祭

读题。

开 A,先想到状压 dp,但是不会,打了个暴力跳了。

开 B,好像不难,首先从边上掉出去的可以算,那么如果没有洞,剩下的数目是知道的(令为 \(x\)),所以洞一定在那些被经过 \(x-k\) 的位置。

不过样例不过。发现是因为掉到边上的不能统计,然后如果一个方块多次经过一个格子只需要计算一次,所以先标记左上角经过了哪些格子,最后在算答案。过了。

回去看 A,发现貌似可以 meet in the middle,复杂度是 \(O(3^n n \log(2^n n))\) 的,能过。过了。

CD 会不了一点,打暴力了。然后 C 暴力还挂了。


补题

看题解,C 看起来好难,于是补 D。

哦还真是 dp of dp,看来想对了,只不过没时间细想了。

注意到只需要 \(n-2\),于是如果跑 LCS 的那个 dp,就只需要记录 \(f_{i,i-2 \sim i+2}\) 的值,而且显然这些值前缀差分是个 \(01\) 序列,于是直接状压就可以了。

但是这样复杂度是 \(O(2^5 \times 5 \times n|\Sigma|)\) 的,虽然那个 \(5\) 可以循环展开,但是还是有一个 \(|\Sigma| = 26\),考虑可不可以把这个去掉,发现是可以的,因为我们只关心添加的字符 \(T_i\)\(S_{i-2 \sim i+2}\) 的相对关系,所以与 \(S_{i-2 \sim i+2}\) 都不相同的字符都是等价的,放在一起处理就好。那么 \(|\Sigma|\) 就被压缩到了 \(6\),可以很轻松地过掉了。

但是代码没调出来,不知为何答案总是小一点/yun

C 是很厉害的数数题,不补了。


天依宝宝可爱!

posted @ 2025-08-29 07:39  little__bug  阅读(28)  评论(0)    收藏  举报