23.7 杂题
greedy
和一道 sd 省集题很像啊,但是我没有想起来。
直接贪心往序列里面加点,每次选可以更新的最大权值。权值为 \(k*a+suf\),其中 \(k\) 是第几个数,\(suf\) 是后面选的数的和。感觉想不到这个主要是不会证明。
然后动态维护这个东西,发现是维护一个凸壳。使用分块+重构来维护。复杂度 \(O(n\sqrt{n})\)。
还有一种找性质优化 dp 的做法,但是估计我也看不出那种性质,懒得管了。
和这个是一样的吧
看起来我们只关心叶子。找到每个叶子能到的最浅的祖先,如果有两个叶子这玩意不是祖先关系,就无解了。于是找到一个最深的这玩意,剩下每个叶子的路径都需要经过这个点至少一次,判断一下即可。
不会推导,稍微理解一下。
如果存在三个老师区间两两无交就寄了。
假设最后老师分成两组的区间的交分别是 \([l_1,r_1],[l_2,r_2]\)。需要满足 \([l_1+l_2,r_1+r_2]\) 和 \([t,T]\) 有交。
记 \(rm=\min r_i,lm=\max l_i\)。如果 \(r_m>l_m\),也就是说所有老师有交,那就不用考虑老师了。
否则还是需要调整,只能 \(r_m\) 变大,\(l_m\) 变小。调整完之后有些老师确定了,如果一个老师确定可以推出另一个老师那也确定了。最后跑一遍染色即可。
[*CF1495E](Qingshan and Daniel - 洛谷 | 计算机科学教育新生态 (luogu.com.cn))
一定有一个阵营最后牌出完了,记作 \(A\),另一个记作 \(B\)。不妨设起点在 \(A\)。直接模拟的话复杂度怎么看都要带 \(\log\)。做一个类似括号匹配的东西,从起点开始暴力迭代常数圈直到第一种没掉了。
-
dp
,tree
-
combinatorics
-
games