Loading

20220310刷题笔记

H - Harder Satisfiability

2-sat 好题,主要思路是先按照 2-sat 的方式建边,要求没对都必须是 \(1\),注意到还有所有和存在的限制,对于这些限制,仔细研究后不难发现,当一个所有能走到另一个所有,并且一个所有和一个编号比起小的存在在一个 dcc 里面的时候,亦或者 2-sat 本来就无解的时候才会无解。利用 Tarjan 直接求解并多维护几个量就可以了。

最近代码的实现能力有所下降,需要注意要多思考,多写,少抄别人代码,但是看可以,一定要关上自己写一遍。

P1600

通过转化题意把题意变成求一个子树内有多少和 \(x\) 相等的点,然后我们可以直接开个桶来记录这个东西。

注意去重,需要去掉其他子树内的贡献以及我们路径到不了的点的贡献。

P2680

二分答案后相当于路径求教然后去最大值,所以我们直接用树上倍增做就可以,复杂度两个 $\log\(1\)

P4216

注意我们可以把单点加,链求和通过树上差分变成子树加,单点求和,然后通过dfs序映射到序列上变成区间加,单点求和,再次差分之后用树状数组来维护。

posted @ 2022-03-10 21:58  hyl天梦  阅读(42)  评论(0编辑  收藏  举报