ABC187 补题实录
A Large Digits [*8]
本题过于简单,这里不再赘述。
B Gentle Pairs [*68]
\(O(N^2)\) 暴力枚举即可。
C 1-SAT [*207]
用 map 把不带 !
的字符串先存起来,再在 map 中查带 !
的字符串去掉 !
的字符串是否出现。
时间复杂度 \(O(N|S|\log N)\)。
D Choose Me [*650]
考虑在 \(i\) 作弊之后,我们会获得多少收益——显然为 \(2\times A_i+B_i\)。
所以直接针对这个值从大到小排序即可。
时间复杂度 \(O(N\log N)\)。
E Through Path [*1358]
是一棵无根树,所以我们先定根。
定义 \(f_i\) 为一个 tag,即在最后我们需要给 \(i\) 点的子树全部加上的值。
对于一个询问,如果它所询问的是一个 dep 较大的点,直接给 \(f_i\) 加上 \(x\)。
否则,维护一个 \(\Delta\) 表示最后需要全局加的值,\(\Delta=\Delta+x,f_i=f_i-x\)。
类似于延后统计贡献?
时间复杂度 \(O(N)\)。
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)\)。