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 imes A_i+B_i)

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

时间复杂度 (O(Nlog 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]

鉴于 (Nle 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 imes N+3^N))

Code

原文地址:https://www.cnblogs.com/lajiccf/p/ABC187.html