20240708总结(可持久化)

A - Katya and Segments Sets

CF1080F Katya and Segments Sets
题解:主席树(可持久化线段树),还真是可持久化。

l,r有两个限制,不好搞,所以我们直接从大到小把边按l排序(要离散化),也就是把l当作版本。

显然l越小,可供选择的边越多,所以二分出满足条件的最小的l。

并且在l一定的情况下,贪心选择r最小的最优,可以用叶子节点表示一个集合在l固定时最小的r(也就是把下标当成集合)。

至于判断结果,可以维护区间[a,b]内的集合中最大的r,如果大于y就无解。

接下来就是主席树板子题了。

B - Team-Building

CF1444C Team-Building
题解:首先黑白染色判掉一个颜色内部就是二分图的情况。

然后发现正着求方案数不好求,反着考虑不可选的颜色对数。

显然选两个颜色不构成二分图肯定需要连边,枚举两个颜色不行,但是可以枚举边。

对于连接两个颜色的边建新图,进行分类讨论:

  • 1.连接的两个节点在原图中的黑白染色相同,可以直接连上
  • 2.连接的两个节点在原图中的黑白染色不同,新建一个节点,把两个节点都连上它

然后黑白染色判新图是否是二分图,如果不是原图也不是二分图,减去答案。

C - T-Shirts

CF702F T-Shirts
题解:做过的题(但是确实有点难写)。

考虑暴力的想法,按照题目的意思把所有衣服排序,对于每一件衣服能买它的顾客修改答案和钱。

但是这样显然太慢了,如果有单调性就好了。

仔细观察发现有时候这确实有单调性,具体来说,如果一件衣服的价格为c,那么钱\(>=2\times c\)的顾客买完以后还剩的钱不会比买不了这件衣服(<c)的顾客的钱少,相对位置关系没什么变化,可以打tag什么的。

关键就是\(c<=钱<2\times c\)的部分,这一些顾客会破坏单调性。

所以我们把这些点取出来一个个处理并且放回去。

具体实现使用平衡树。

E - Turing Tree

HDU3333 Turing Tree
题解:开了3秒,发现莫队可以草过去,但是开map会TLE,所以要离散化。

I - Query on A Tree

HDU6191 Query on A Tree
题解:trie树+启发式合并

posted @ 2024-07-10 08:08  星河倒注  阅读(31)  评论(0)    收藏  举报