AT_joisc2018_b 题解
1|0AT_joisc2018_b 题解
1|1题意
有一个以原点为中心的正方形,有
1|2思路
我们需要画出一条闭合折线,并且能够把正方形包围。
考虑我们一定是把已有线段用新的线段连起来,或者是让已有线段和正方形边界连起来。因为线段不能在正方形内,我们把两个线段连接起来如果要用正方形边界,就一定会覆盖一个拐角,就是说一定不会只用正方形一条边界的一部分,因此我们可以把只把正方形的四个角当成线段,这样我们就只需要考虑连接两个线段的贡献了。
对于每一对线段,我们求出连接这两个线段最小的代价和这条线段。注意如果这条线段和正方形有交,我们就不能选这条线段,而且我们用其他方式直接连接这两个线段一定没有通过正方形边界更优,因此不用考虑。现在问题就变成了找最小的环使得包含这个正方形。
对于判包含,我们可以从正方形中引出一条射线,如果这条射线经过了折线奇数次,就说明被包含了正方形。
于是对于每一对线段,我们求出连接这两个点的线段经过了射线多少次,这样我们的问题就是求一个经过射线次数为奇数的最小环,可以用 Floyd 解决。
复杂度
__EOF__

本文作者:Xttttr
本文链接:https://www.cnblogs.com/Xttttr/p/17958728.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/Xttttr/p/17958728.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】