Little Vegetable Chickens in Shandong 二队: donghanwen, do_while_true
Accepted:E(dwt)F(donghanwen)H(donghanwen)
H
,构造出四个点分别为 和 .
E
ARC156D 的 dp,用 bitset 优化就行。
F
根据排序不等式,答案的下界应当为 ,那就尝试构造出这个下界。尝试归纳然后反证,就 不能引爆 那么 距离 比距离 更近,然后看 就要离 比离 更近 ...... 到最后 要离 更近,那 必然会引爆 ,与假设不符,矛盾。
所以这个下界一定能构造出,然后考虑每次怎么找一个能引爆 的 .就考虑 最近的要满足是 的话,需要一个区间 里的 都被删掉,那么就线段树优化建图,然后拓扑排序。
可以不用这么麻烦!维护一个栈,从前往后枚举 ,如果 就压入栈;如果 。就不断检查 离 比离 更近的话就弹出 并且把它干碎;否则就可以干碎 然后 break 了。
很好理解为什么是对的,但我觉得这怎么想到的啊!
dhw:
我最后可能是
就单纯觉得如果一开始全是ai>bi就好了
或者最后全是ai<bi
但是做不到
于是考虑一边压进栈一边解决
发现就可以了。
希望我们常人能够理解大师的思路!
J
先别把问题转化成两个前缀!
没什么想法!枚举算法!扫描线没救!莫队看上去很慢!分治!按照纵坐标分治一下!
考虑跨过中线的,如果左半部分红的最大值,在内外哪侧,和右半部分蓝的最大值,在内外两侧,相同时,那么肯定是它俩对答案贡献。
然后发现就算它们并不是同在内侧或者同在外侧,那么对答案产生贡献的点对,也一定包含左红最大值和右蓝最大值。
把所有可能的 个点对拉出来(支配对的套路),答案一定出现在它们之中,那么问题就变成 2-side max 了。
cf blog 里面一个 支配对的方法是:
- 对每个红点,找纵坐标大于它的最优的蓝点;
- 对每个蓝点,找纵坐标小于它的最优的红点;
- 将红点按照纵坐标排序,对于权值的每个前缀最大值,对于下一个前缀最大值的纵坐标 ,找纵坐标比 大的最优的蓝点。
为什么是对的!我还不懂!后面的英文看不懂了!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?