
几何-凸包
文章平均质量分 81
JeraKrs
本人目前就职于百度商业研发部,有需要内推的朋友简历可发我邮箱 jerakrs@qq.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
uva 11072 - Points(凸包)
题目链接:uva 11072 - Points求出凸包,判断点是否在凸包内即可。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const double eps原创 2015-08-27 13:22:17 · 884 阅读 · 0 评论 -
hdu 5473 There was a kingdom(dp+几何)
题目链接:hdu 5473 There was a kingdom解题思路选取的点一定在凸包上,所以对点集做凸包,如果凸包的点个数小于等于K,面积可以取到最大值。否则,枚举起点,做动态规划。dp[i][j]表示到第i个点选取了j个点的最优解。这样的复杂度为o(n2k)o(n^2k),算上枚举起点总得复杂度为o(n3k)o(n^3k)。但是,我们选取的是k个点,如果有枚举到一次的起点在这k个点上,即可原创 2015-10-01 16:40:20 · 1479 阅读 · 0 评论 -
hdu 5448 Marisa’s Cake(几何+凸包)
题目链接:hdu 5448 Marisa’s Cake解题思路这题和zoj 3871 Convex Hull有点像,不过点数比较大,不能接受o(n2)o(n^2)的算法。但是题目给定的是一个凸包,所以可以通过化简,在o(n)o(n)的复杂度内计算出答案。首先,对于一个三角形ABC SABC=fA×fB+fB×fC+fC×fA(fi表示点i和原点组成的向量)S_{ABC} = f_A \times原创 2015-09-29 16:49:55 · 995 阅读 · 0 评论 -
uva 10256 - The Great Divide(凸包)
题目链接:uva 10256 - The Great Divide求出两个凸包,暴力判断有没有相交。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-8;inline in原创 2015-08-21 22:51:13 · 846 阅读 · 0 评论 -
uva 11168 - Airport(凸包)
题目链接:uva 11168 - Airport求出凸包,凸包的每条边即为需要考虑的直线。因为点均在直线同一侧,所以Ax+By+C的正负值相同。预处理出x,y的总和,根据d = | Ax + By + C| / sqrt(A*A+B*B),在o(1)的复杂度内计算出所有点到直线的距离。#include #include #include #include #incl原创 2015-08-21 22:48:28 · 671 阅读 · 0 评论 -
uva 10652 - Board Wrapping(凸包)
题目链接:uva 10652 - Board Wrapping处理出所有顶点,求凸包的面积。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps = 1e-8;inline int dc原创 2015-08-21 22:43:54 · 621 阅读 · 0 评论 -
uva 361 - Cops and Robbers(凸包)
题目链接:uva 361 - Cops and Robbers点P在点集S中某三个点构成的三角形内的充要条件是点P在点集S的凸包内。#include #include #include #include #include using namespace std;const double pi = 4 * atan(1);const double eps =原创 2015-08-17 21:29:39 · 980 阅读 · 1 评论 -
hihoCoder 1225 向日葵(凸包)
题目链接:hihoCoder 1225 向日葵枚举每条线段称为凸包边界的概率。注意一对点中有1个在线段左边*0.5,0个在线段左边*0,2个都在线段左边*1。最后答案要除4,因为枚举的两个点也要算概率。#include #include #include #include #include #include using namespace std;typed原创 2015-08-31 23:44:29 · 969 阅读 · 0 评论 -
uva 1438 - Asteroids(几何重心+凸包)
题目链接:uva 1438 - Asteroids#include #include #include #include #include #include using namespace std;const double eps = 1e-9;inline int dcmp (double x) { if (fabs(x) < eps) return 0; els原创 2015-08-31 22:59:13 · 719 阅读 · 0 评论 -
uva 11726 - Crime Scene(圆+凸包)
题目链接:uva 11726 - Crime Scene求出所有点和圆的切点,然后所有的点和原有的点一起做一次凸包,求出凸包的边长,如果连续的两个点都是圆同一个圆上的切点,计算长度的方式就要变成求弧长。#include #include #include #include #include #include using namespace std;typed原创 2015-08-31 22:42:26 · 1168 阅读 · 4 评论 -
zoj 3871 Convex Hull(凸包)
题目链接:zoj 3871 Convex Hull枚举每条边,计算出有多少情况下为凸包的边界,即有多少点在该边的左边。#include #include #include #include #include #include using namespace std;typedef pair pii;typedef long long ll;const d原创 2015-08-31 23:41:02 · 1612 阅读 · 0 评论 -
uva 1303 - Wall(凸包)
题目链接:uva 1303 - Wall求出凸包加个圆周。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);const double eps = 1e-8;in原创 2015-08-27 13:13:59 · 699 阅读 · 0 评论 -
uva 811 - The Fortified Forest(暴力+凸包)
题目链接:uva 811 - The Fortified Forest最多就15棵树,枚举哪些树要砍,剩下的做凸包。#include #include #include #include #include #include using namespace std;typedef pair pii;const double pi = 4 * atan(1);原创 2015-08-27 13:29:13 · 618 阅读 · 0 评论 -
hdu 4667 Building Fence(几何)
题目链接:hdu 4667 Building Fence代码#include <cstdio>#include <cstring>#include <cmath>#include <vector>#include <complex>#include <algorithm>using namespace std;typedef pair<int,int> pii;const double原创 2015-11-06 21:42:38 · 602 阅读 · 0 评论