ABC187 补题实录

A Large Digits [*8]

本题过于简单,这里不再赘述。

Code

B Gentle Pairs [*68]

\(O(N^2)\) 暴力枚举即可。

Code

C 1-SAT [*207]

用 map 把不带 ! 的字符串先存起来,再在 map 中查带 ! 的字符串去掉 ! 的字符串是否出现。

时间复杂度 \(O(N|S|\log N)\)

Code

D Choose Me [*650]

考虑在 \(i\) 作弊之后,我们会获得多少收益——显然为 \(2\times A_i+B_i\)

所以直接针对这个值从大到小排序即可。

时间复杂度 \(O(N\log N)\)

Code

E Through Path [*1358]

是一棵无根树,所以我们先定根。

定义 \(f_i\) 为一个 tag,即在最后我们需要给 \(i\) 点的子树全部加上的值。

对于一个询问,如果它所询问的是一个 dep 较大的点,直接给 \(f_i\) 加上 \(x\)

否则,维护一个 \(\Delta\) 表示最后需要全局加的值,\(\Delta=\Delta+x,f_i=f_i-x\)

类似于延后统计贡献?

时间复杂度 \(O(N)\)

Code

F Close Group [*1895]

鉴于 \(N\le 18\),一眼状压没跑了。

于是不难想到 \(f_S\) 表示包含 \(S\) 集合的点满足条件时有的强联通图个数。

显然若 \(S\) 直接包含一个强联通图,\(f_S=1\)

我们可以将 \(S\) 划分为 \(S_1\)\(S_2\),则有 \(f_S=\min\{f_{S_1}+f_{S_2}\}\)

于是这题就没了。

时间复杂度 \(O(2^N\times N+3^N)\)

Code

posted @ 2021-01-07 20:32  cnyz  阅读(92)  评论(0编辑  收藏  举报