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 imes A_i+B_i)。
所以直接针对这个值从大到小排序即可。
时间复杂度 (O(Nlog 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]
鉴于 (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))。