把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end
摘要: 我们括号匹配的经典做法就是把左括号看作 $+1$,右括号看作 $-1$,那么任意一个位置上的前缀和必须 $\geq0$,且最后一个位置的前缀和必须为 $0$。 这个可以引申出来一个定理: > 对于第 $i$ 个左括号一定满足其位置 $pos\leq 2i-1$。 显然的,因为如果不满足就说明前面的右括号多了,也就是上一个前缀和出现了负数。 那么我们就转化为了处理左括号与这个的偏序关系,又因为字典序天然的贪心,所以说我们从前往后枚举能不能填左括号,如果能填就尽量填。 那怎么判断呢?我们只需要判断这个位置能不能找到偏序关系即可,而且与它数字相同的那一组也要满足。 这个思路很巧妙,位置用 `set` 维护就行了。 阅读全文
posted @ 2025-10-10 09:37 high_skyy 阅读(6) 评论(0) 推荐(0)
摘要: 感觉很典,所以就记下来了。 我们考虑一个非常重要的事实: - 田忌赛马对于每一个 $a_i$ 找的是第一个比他大的 $b_i$。 - 而字典序最大又需要前面的尽可能大。 这似乎产生了矛盾,让这道题目看起来有点难。 我们考虑不用 `multiset` 或者双指针求这个值,我们考虑分治的过程。 CDQ 分治是这样的: >对于左区间算好其分内的答案,右区间算好其分内的答案。 > >要合并区间的时候,左区间和右区间匹配就行了。 那么我们只需要记录每个区间剩下多少个 $a$ 中的元素和 $b$ 中的元素还没有匹配即可。 最精华的部分来了:由于我们对于每一个 $a_i$ 肯定进行二分答案是否可行,因为字典序本质上就有一个贪心的过程。我们考虑把这个思想搬到一个可支持修改的线段树上面即可。 在线段树上面这个是好维护的,于是这道题就做完了。 阅读全文
posted @ 2025-10-10 08:27 high_skyy 阅读(9) 评论(0) 推荐(0)
浏览器标题切换
浏览器标题切换end