随笔分类 -  几何

摘要:U2 把坐标转(x, y)换成(x, y - x * x)之后就是求个上凸包 阅读全文
posted @ 2019-11-05 11:28 NotNight 阅读(252) 评论(0) 推荐(0)
摘要:HDU - 5784 感觉好久没写这种题了啊。。感觉细节好多。 对每个点极角排序统计钝角和直角, 还有三点共线的。 阅读全文
posted @ 2019-09-08 00:05 NotNight 阅读(164) 评论(0) 推荐(0)
摘要:6590 好像数据有点水, 我没判点是否在凸包内。。 阅读全文
posted @ 2019-07-23 13:27 NotNight 阅读(666) 评论(0) 推荐(1)
摘要:Freelancer's Dreams 我们把每个二元组看成是平面上的一个点, 那么两个点的线性组合是两点之间的连线, 即x * (a1, b1) + y * (a1, b1) && x + y == 1, 那么n个点的线性组合就是一个凸包, 那么我们求出凸包和(0, 0)到(p, q)直线的交的那 阅读全文
posted @ 2019-03-03 14:30 NotNight 阅读(159) 评论(0) 推荐(0)
摘要:const double PI = acos(-1); int dcmp(double x) { if(fabs(x) 1 && dcmp(Cross(ch[m - 1] - ch[m - 2], p[i] - ch[m - 2])) = 0; i--) { while(m > k && dcmp(Cross(ch[m - 1] - ch[m - 2], p[i] -... 阅读全文
posted @ 2019-03-03 13:36 NotNight 阅读(168) 评论(0) 推荐(0)
摘要:A - Abstract Art 阅读全文
posted @ 2019-02-26 10:29 NotNight 阅读(166) 评论(0) 推荐(0)
摘要:#include #define LL long long #define fi first #define se second #define mk make_pair #define PLL pair #define PLI pair #define PII pair #define SZ(x) ((int)x.size()) #define ull unsigned long long u... 阅读全文
posted @ 2018-12-29 20:24 NotNight 阅读(299) 评论(0) 推荐(0)
摘要:精度有点毒, 其实可以不用double, 因为A, B必定在其中一个在三角形上,可以投影到只有x,y轴的地方叉积比较。 阅读全文
posted @ 2018-11-29 14:16 NotNight 阅读(284) 评论(0) 推荐(0)
摘要:思路:将飞机看成不动的,然后枚举时间看点是否在多边形内部。 阅读全文
posted @ 2018-10-16 21:17 NotNight 阅读(308) 评论(0) 推荐(0)
摘要:思路:好脑洞啊。。。 把边和角转化为字符串,然后用反串跑kmp。。。 阅读全文
posted @ 2018-06-23 16:13 NotNight 阅读(139) 评论(0) 推荐(0)
摘要:思路:我刚开始算三角形的方法是原点叉积三条边,然后计算每条边向量积的贡献,但是对于同一条线上的点 有时候没有办法抵消掉。。。。。 看网上的思路是对于一个三角形的面积通过两条边的叉积获得,然后枚举一个点,排序去掉公式的绝对值,记录 后缀和进行计算。。。 看的这篇博客。。 https://www.cnb 阅读全文
posted @ 2018-06-16 15:46 NotNight 阅读(152) 评论(0) 推荐(0)
摘要:题目大意: 给你n个点求最小矩形覆盖。 思路:枚举凸包上的边然后,旋转卡壳找三个相应的为止把矩形的四个点求出来。 阅读全文
posted @ 2018-05-10 15:54 NotNight 阅读(129) 评论(0) 推荐(0)
摘要:题目大意:给你一个n (n<=300) 边形,给出它所有的顶点坐标,让你把它划分成n-2个三角形的花费最小值,顶点 a 和 b 相连的花费为 abs(a.x+b.x)*abs(a.y+b.y)。 如果是凹多边形输出无解。 思路:先跑个凸包判断是不是凸多边形,跑完之后点的顺序是逆时针的,我们考虑区间d 阅读全文
posted @ 2018-01-25 15:02 NotNight 阅读(218) 评论(0) 推荐(0)
摘要:1 #include 2 using namespace std; 3 const int N=2005; 4 int n,tot; 5 struct point 6 { 7 int x,y; 8 point(int _x=0,int _y=0){x=_x; y=_y;} 9 point operator -(const point &rhs)const... 阅读全文
posted @ 2018-01-25 13:41 NotNight 阅读(161) 评论(0) 推荐(0)
摘要:1 #include<bits/stdc++.h> 2 using namespace std; 3 struct point 4 { 5 int x,y; 6 }p1,p2,p3,p4; 7 int cross(const point &a,const point &b,const point & 阅读全文
posted @ 2017-11-26 17:36 NotNight 阅读(166) 评论(0) 推荐(0)