2024 ICPC 湖北省赛 C

做题纪要太久不更新了,可能最近真的除了打模拟赛之外没有做什么题了,,做不动题了,真的是卷不动了吧

昨天打了个湖北省赛,弱智 I 题写的做法巨大麻烦然后最后一小时还没调完,最后第四遗憾离场,,

C 题没人过,这题还是比较有趣的,其实也不难,只是打 ACM 赛场上可能真的做不出来,毕竟最后一个小时我就算是写完了 I 也没时间想这题了,,

简要题意:给定若干个矩形,这些矩形的并形成一个图形,保证这个图形的角不超过 \(2000\) 个。你要用最少的互不相交的矩形来恰好覆盖这个图形,输出最少需要的矩形数。

首先划分的线不可能不经过任意一个角,且没法经过一个内角为直角的角,我们记外角为直角的角为关键角,那么每一条划分的线一定是经过一个关键角或两个关键角。

考虑用某个量来替代划分数。考虑整个图形的内角和,如果划分一次经过一个关键角,此时内角和是不变的(270° 角被划分成一个直角,左边多划分出两个直角,总和不变),而如果经过两个关键角则总和减少 360°。最后的矩形数显然等于内角和除以 360°,那显然我们要最大化内角和,也就是最大化经过两个关键角的划分。那么我们把所有链接两个关键角的边拿出来,选择尽可能多的边,且边两两不能有公共端点,这是一个最大集的问题,注意到公共端点处一定是一条横线与一条竖线,那么这是二分图,直接跑最大匹配即可。

posted @ 2024-04-28 21:08  APJifengc  阅读(436)  评论(1编辑  收藏  举报