Codeforces Round 1073 Div.1 写题记录(编号 2190)
A
显然有序 Bob 赢,那么无序的情况就是选出一个不升子序列变成不降子序列,考虑一定有这么一个分界点,是的前面全部取 \(1\),后面全部取 \(0\),看一下合不合法即可,当然有一种更简单的构造方式是排完序后比对哪些位置不一样,容易说明这样是正确的且总能构造出解。
B1
选出一个子序列,使得字典序比原串要小。
考虑简化为删掉一个子序列,使得剩下部分字典序比原串小,你发现删除一个 )( 这样的结构时会将后面的部分往前平移一格,但是你发现如果是 ()(),即使往前移了但是也只是比原串长度小,由于字典序在这里修改了定义,所以这种情况不行,如果有解就要在这样的结构后面再加入至少一个 (,可以用归纳法证明只有这两种情况,一种是 \(n - 2\),另一种是 \(-1\)。
显然这里只保证了充分性,但是交一法会发现它是必要的。
B2
相当于在外面又给你套了一层 \(s\) 的子序列的壳子。
写一个 DP 是不是就全对了。
wc 这 DP 咋这么难写,算了今天晚上不写了。

浙公网安备 33010602011771号