Codeforces Round 906 (Div. 2) Doremy's Drying Plan E1.&E2
先考虑 只需要删除两条线使得不被覆盖的点数最多。
观察到点数只有 那么我们完全可以先将被至少条线覆盖的点删掉。
考虑枚举一条线,枚举这条线覆盖的点寻找另外一条线覆盖这些点中的最大值,然后再找没覆盖这些点之外的线的最大值即可。
复杂度容易证明是线性的。
考虑 需要我们删除条线求出不被覆盖的点数最多。
点的数量不变,遇到这种贪心没办法解决的问题,由于点的规模很大,也不能使用网络流,只能考虑。
设状态表示前个点且第个点必无覆盖已经删掉条线的最大值。
考虑枚举上一个未被覆盖的点 设包含的线段数量-包含包含的线段数量为
我们可以先把那些被覆盖超过次的点扔掉。
这样上述转移是的或者优化一步为的。
考虑进一步优化这个转移式无非是求最大值
利用线段树维护即可。
注意到我们需要外层枚举 还需要不断更改这个东西,可以暴力的修改。
因为最多修改次。
总复杂度。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2019-11-02 11 2