[LMXOI Round 1] Placer
BrotherCall · · 题解
挺有意思的题目,难度应该是绿左右。
看到这题第一反应是设
一时间应该会想到从该右端点匹配的左端点转移过来,设这个左端点为
想了一会就会发现这漏了情况,形如 ()()() 这样的,按上面的转移就是
但是
因此发现一个右端点可以从它前面与它同层的任意一个左端点转移过来。
同层的解释:相同层数且在同一外层中。
相同层数很好理解,举个例子说明什么叫在同一外层中。
(())(()),八个位置的层数分别为 1 2 2 1 1 2 2 1。但两个第二层的括号并不在同一外层中。
(()()),六个位置的层数分别为 1 2 2 2 2 1。此时两个第二层的括号在同一外层中。
到这里,我们就可以写出
观察这个转移方程我们可以把
最后一个重要的点是直接这么做会让优先队列里存在不在同一外层中的数,解决方法是退第
Code