hdu 6219 Empty Convex Polygons (凸包)】的更多相关文章

给你n个点,求面积最大的凸多边形,使得这个凸多边形没有内点. 考虑求凸包的graham算法,需要找到左下角的点,再进行极角排序后按顺序扫点,所以先枚举左下角的点. 这个过程中,如果遇到内点,就需要把这个内点排除掉,而现在需要把在外的点排除掉. 因为不确定凸包的边界,需要dp处理,一开始是一个三角线的两条边作为边界,然后不断枚举可能的边界进行扩展,同时保证不能包含内点. #include<iostream> #include<cstdio> #include<string>…
题面 题意:给你一堆点,求一个最大面积的空凸包,里面没有点. 题解:红书板子,照抄完事,因为题目给的都是整点,所以最后答案一定是.5或者.0结尾,不用对答案多做处理 #include<bits/stdc++.h> #define N 55 using namespace std; struct rec { double x,y; }; rec operator -(rec a,rec b) { rec c; c.x=a.x-b.x; c.y=a.y-b.y; return c; } doubl…
https://vjudge.net/contest/324256#problem/L 题意:给一堆点,求最大空凸包面积. 思路:枚举凸包左下角点O,dp找出以这个点为起始位置能构成的最大空凸包面积,用dp[i][j]表示以Oi和ij为凸包最后两边所构成凸包面积的最大值. dp[i][j] = max(dp[i][j],triangle(O,i,j)+dp[j][k]) #include<bits/stdc++.h> #define ll long long #define rep(i,a,b…
首先对于这m个点维护出一个凸包M,那么问题就变成了判断凸包P进行放大缩小能不能包含凸包M.(凸包P可以进行中心对称变换再进行放大缩小,见题意) 如何判断合适的相似比呢,我们可以用二分去放大缩小凸包P的坐标,得到最小的相似比. 接下来就是如何判断是否包含.我们需要对凸包P上的每一条向量,在凸包M上找到这么一个点,使得这个点左侧的所有凸包M上的点都在向量的左侧,那么我们可以直接同时逆时针枚举,用一个变量维护凸包M上的点,因为是同逆时针,凸包M上的点至少有一个只会被遍历一次,那么复杂度可以证明为On,…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1392 这里介绍一种求凸包的算法:Graham.(相对于其它人的解释可能会有一些出入,但大体都属于这个算法的思想,同样可以解决凸包问题) 相对于包裹法的n*m时间,Graham算法在时间上有很大的提升,只要n*log(n)时间就够了.它的基本思想如下: 1.首先,把所有的点按照y最小优先,其次x小的优先排序 2.维护一个栈,用向量的叉积来判断新插入的点跟栈顶的点哪个在外围,如果栈顶的点在当前插入的点的…
链接:pid=4946">http://acm.hdu.edu.cn/showproblem.php?pid=4946 题意:有n个人.在位置(xi,yi),速度是vi,假设对于某个点一个人比全部其它的都能先到那个点,那这个点就被这个人承包了.输出有多少人承包的(鱼塘)面积是无穷大. 思路:找出速度最大值,仅仅有速度是这个最大值的人才有可能承包无穷大的面积(由于快速者早晚会追上低速者). 每两个人相比,他们能承包的位置的界线是他们坐标的中垂线,能够证明的是,在组成凸包时,在凸包里的人.承包…
题目链接:hdu 4946 题意:一大神有N个学生,各个都是小神,大神有个二次元空间,每一个小神都有一个初始坐标,如今大神把这些空间分给徒弟们,规则是假设这个地方有一个人比谁都先到这,那么这个地方就是他的,问谁的地盘面积是无穷大的. 思路:由于空间是无限大的,所以仅仅要速度最大就有可能有无限的地盘,重合的点不能严格的比对方快,也不符合规定,然后求速度最大的点围城的凸包,凡是在凸包上的点且不重合的,地盘都是无穷大. 比赛的时候,不会凸包的,现找的模板,不了解性能,不知道计算凸包不能传重合的点进去结…
#include <iostream>#include <opencv2/opencv.hpp> using namespace std;using namespace cv; Mat img1, img2, img3, img4, img_result, img_gray1, img_gray2, img_gray3, img_canny1; char win1[] = "window1";char win2[] = "window2";c…
Surround the Trees:http://acm.hdu.edu.cn/showproblem.php?pid=1392 题意: 在给定点中找到凸包,计算这个凸包的周长. 思路: 这道题找出凸包上的点后,s数组中就是按顺序的点,累加一下距离就是周长了. #include <algorithm> #include <iterator> #include <iostream> #include <cstring> #include <cstdli…
题目链接:HDU 1392 Problem Description There are a lot of trees in an area. A peasant wants to buy a rope to surround all these trees. So at first he must know the minimal required length of the rope. However, he does not know how to calculate it. Can you…