2024/10/15

Link

估分:100+60+70+100=330
实际:30+50+20+100=200

大寄!

A

没考虑 corner case 死了。

模拟即可,注意 \(n=1\) 时不一定无解,如果是 \(0\) 或者 \(15\) 的话答案显然是 UPDOWN

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)\) 的点,当前重力方向是向下/向上的最小反转次数。

显然直接考虑三种情况:往左并掉落(注意可能是往上),往右并掉落,反转重力。

posted @ 2024-10-15 12:40  incra  阅读(24)  评论(0)    收藏  举报