五月颓废记录
[集训队互测 2018] 完美的队列
2log 的做法很神秘,很精妙。
放在线段树上做,每条加入的线段都看做 log 条线段。
对于线段树上的每条线段,都要开一棵子线段树。
总之要维护出每次加入一段线段后,哪些位置的线段被完全 pop 掉,不断 pop 就行了。
看了一些 AGC 却发现一个都不会!!!
CF1819F Willy-nilly, Crack, Into Release!
大概会了,等下再写
CCO2022 Double Attendance
写一个 dp,\(f(i,0/1,0/1)\) 表示看了 \(i\) 个课,在哪个教室,另一个教室此刻的课有没有看过,此时的最小时间。
然后只有两种转移,二分一下就可以转移了。
集训队互测 2023 Round 2 - nth
不太会通信题。
首先题目中给出了 A 和 B 的集合大小,这是要用上的,这点就没想到。
经过转化后变成了 A 和 B 的集合大小相等,要求上中位数或下中位数。
然后就好做了很多,可以让 A 和 B 互相发中位数的 highbit。每次可以集合大小减半或值域减半。
感觉好难啊!!
集训队互测 2023 Round 2 - 相等树链
对 \(T_1\) 点分治,设分治中心为 \(u\)。
讨论 \(T_2\) 中路径的两个端点来源(只可能来自 \(T_1\) \((u,x)\) 路径上,在 \(T_2\) 中距离 \(u\) 最远的两个点)。
给每个点赋随机权值 Xor Hash,然后转化成了另一个统计问题,就可以做了。
CF1086F Forest Fire
很久之前看过这题,会一个高复杂度的做法,现在来补一下 \(n^2\) 做法。
考虑容斥把矩形并变成矩形交,矩形交仍然是一个矩形。
ROI 2018 Addition Without Carry
很牛逼的题。
关键思想:确定最高位的一段 1,然后递归判定,复杂度可以证明是对的。
AGC048F 01 Record
考虑猜结论,想一想对于一个集合怎么判定能不能生成。
如果能生成一个 101010101 和 1010 , 那可以生成 10101010 和 10101,也就是可以把长的串最后一位移到短的串上。
那可以先写一个贪心,贪心生成一组串 \(a_1,a_2,...,a_n\),使得 \(a_1\) 最大,然后 \(a_2\) 最大,以此类推。
这样可以猜测一个集合是由 \(a_1,a_2,...,a_n\) “从长的末尾移动字符到短的” 来生成。
那么充要条件就是对于前 \(i\) 长的串,\(0/1\) 的个数 \(\le a_1,...,a_i\) 中 \(0/1\) 的个数,可以写一个 \(O(n^3\log n)\) dp。
想了想自己还是太摆了。以后还是要保持更新一下。
做完了 ARC160. 上次 CF 还有一个 F 是 SNOI2020 排列的加强版。
luogu P9347
看了几个 ptz winter 2023 我场上没做的题。
今天晚上应该做一下月赛 F,但我还不会。可能会了。
luogu P9348
qoj5749 Directed Vertex Cacti
考虑一个状压 dp,考虑状压 dp 的组合意义。
之前做过了一些不怎么有意思的题,就不记了。
AGC048E
考虑是怎么算一个 A 对应的 x 序列的。
“字典序最大”,让人想到逐个确定,但是有点麻烦。
考虑删去 \(A_1\) 并且归纳,删 \(A_1\) 后把后面能加 1 的加上 1,这是合理的能贪心算出 \(x\) 的过程。
然后就可以 \(n^5\) dp 了。
EGOI2022 Double Move(口胡)
做法是暴力记搜两人的策略。
连边 \(a_i,b_i\),(合法状态)每个连通块需要是树或基环树。
状态只需要记录基环树的个数和每个树的大小。这样状态是不多的。