2017百度之星Astar资格赛 1001度度熊保护村庄

来源:互联网 发布:淘宝永久封店 身份证 编辑:程序博客网 时间:2024/06/15 21:25

这道题目并不难,但是真的很难想到~一开始我的思路也是各种乱贪心……
题目链接:http://bestcoder.hdu.edu.cn/contests/contest_showproblem.php?cid=774&pid=1001
Astar2017资格赛1001
这道题的题意就是给出两类点,选最少的第二类点使得其所构成的多边形能够完全包含第一类点。
这个问题很像凸包,但是这里所要求用来包围的和被包围的点集是不一样的,而且所求不是面积最小而是点数最少,不过这里所要求的算法也无需那么高效,只需O(n3)左右即可。
我们考虑建一个图,暴力枚举两个二类点ab,如果所有一类点都在ab左侧,我们就从ab连一条边,反之如果都在右侧,那么我们就从ba连一条边,如果所有一类点不都在同一侧,那么我们就不连边。这个东西可以暴力算,再枚举每一个点然后算个叉积啥的就行了。
这时,这道题目已经被我们化简成了简单多的图论问题啦~这里就是要找一个最小环,马上就想到我们无比简单的Floyd最小圈,那么就能过了。
不过这题时限只有1s,所以我们在常数上还需要注意(但是这道题目真的很水啊233为什么没有什么人过……@tmk @Maple)。

阅读全文
2 0
原创粉丝点击