2024/10/15
Link。
估分:100+60+70+100=330
实际:30+50+20+100=200
大寄!
A
没考虑 corner case 死了。
模拟即可,注意 \(n=1\) 时不一定无解,如果是 \(0\) 或者 \(15\) 的话答案显然是 UP 和 DOWN。
B
部分分
特判小数据,注意到 2 5 答案并不是
AABBA
AABBC
而是
AABAA
AACAA
后者显然字典序更小。
正解
赛时想到过正解,然后觉得假了,遂没写。
注意到 5 9 的答案是
AAAAABAAA
AAAAACAAA
AAAAABAAA
AAAAACBBC
AAAAADBBA
根据这个样例,我们考虑从上往下,从左往右,然后每次填尽可能小的字母,然后注意到下面的 \(2\times 2\) 的 B,可以想到往右尽可能地扩展一定不劣。
C
正解
DP 题。
考虑 \(f_i\) 表示前 \(i\) 个数,满足无法再操作且 \(i\) 被删空的最小代价。
首先 \(f_{i-2}+a_i\) 显然可以更新 \(f_i\),然后注意到样例中给出了两个数可以同时消除的情况,所以 \(f_{i-3}+\max\{a_{i-1},a_i\}\) 也可以更新。注意到后者可能在实际操作中不一定能实现,但是不难证明不能实现的时候显然更劣。
所以转移方程是 \(f_{i}=\min\{f_{i-2}+a_i,f_{i-3} + \max\{a_{i-1},a_i\}\}\)。
D
场切了,简单 BFS。
注意到边权是 01,所以考虑 01 BFS。
设 \(d_{i,j,k=0/1}\) 表示到第 \((i,j)\) 的点,当前重力方向是向下/向上的最小反转次数。
显然直接考虑三种情况:往左并掉落(注意可能是往上),往右并掉落,反转重力。

浙公网安备 33010602011771号