1 //极角排序 2 #include 3 #define sqr(x) ((x)*(x)) 4 using namespace std; 5 int n,st[200001],top; 6 struct POI 7 { 8 int x,y; 9 POI() 10 { 11 x=y=0; 12 } ... ...
分类:
其他好文 时间:
2017-07-09 17:17:08
阅读次数:
147
https://www.bnuoj.com/v3/contest_show.php?cid=9147#problem/E 【题意】 给定n个点的坐标,可以选择其中的四个点构造凸四边形,问最多能构造多少个凸四边形? 【思路】 凸四边形的个数等于C(n,4)-凹四边形的个数。 凹四边形的特点是有一个顶点 ...
分类:
编程语言 时间:
2017-07-05 00:35:46
阅读次数:
265
凸包:能围住所有给出的点的面积最小的多边形(个人理解) Graham:选取y值最小的点,将其它点极角排序,依次把1~n号点加入栈中,判断当前点、栈顶、栈顶下面那个点三者的关系(嘻嘻),一直这样做就好了 判断用叉积,也就是如下图的要判掉(top--) 其实上图是不对的哦,你有没有反应过来呢~按极角排序 ...
分类:
编程语言 时间:
2017-06-27 19:50:43
阅读次数:
533
水题,根本不用凸包,就是一简单的极角排序。 叉乘<0,逆时针。 #include <iostream> #include <cstdio> #include <cstring> #include <string> #include <algorithm> using namespace std; c ...
分类:
编程语言 时间:
2017-06-05 12:33:22
阅读次数:
238
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1132 【题目大意】 平面上有N个点. 求出所有以这N个点为顶点的三角形的面积和(N<=3000) 【题解】 我们发现直接枚举三个点计算会造成很大部分的叉积重复被计算, 因此我们枚举i,计 ...
分类:
编程语言 时间:
2017-04-16 22:23:18
阅读次数:
307
C. Paint Tree time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output C. Paint Tree time limit p ...
分类:
编程语言 时间:
2017-03-09 22:52:28
阅读次数:
519
题意: 给定一棵n个点的树,给定平面上n个点,将n个点用线段连起来画成树的形状,使得不存在不在端点相交的线段,构造出一种情况。 解法: 首先观察我们常规画出来的树形图可知,树的子树是根据极角分开的,这样,我们每一次找到最靠左下的点, 而后对剩余点极角排序,根据子树大小和极角的连续关系将点集划分,依次 ...
分类:
其他好文 时间:
2017-03-08 23:07:07
阅读次数:
229
给你俩凸包,问你它们的最短距离。 咋做就不讲了,经典题,网上一片题解。 把凸包上的点逆时针排序。可以取它们的平均点,然后作极角排序。 旋转卡壳其实是个很模板化的东西…… 先初始化分别在凸包P和Q上取哪个点,一般在P上取纵坐标最小的点,在Q上取纵坐标最大的点 for i=1 to n(n是凸包P上的点 ...
分类:
其他好文 时间:
2017-02-02 19:08:11
阅读次数:
217
求出重心,然后把所有点关于重心极角排序,极角相同的按到重心距离从大到小排序。 按极角序依次扫描,得到相邻两个向量的夹角以及长度之比,看成字符串。 若两个字符串循环同构,则两个点集相似,KMP判断即可。 时间复杂度$O(n\log n)$。 ...
分类:
其他好文 时间:
2016-12-04 07:47:44
阅读次数:
309
题目大意:按逆时针方向连接个点,并将其输出,第一个点为(0,0)。 题目思路:叉积排下序就好了 #include<cstdio> #include<cstdlib> #include<cmath> #include<iostream> #include<algorithm> #include<cst ...
分类:
编程语言 时间:
2016-11-04 16:15:42
阅读次数:
167