ACM-计算几何
「已注销」
这个作者很懒,什么都没留下…
展开
-
判断两条线段是否相交
说明包括了一个或多个点重合的情况。 输入点的坐标顺序为Ax,Ay,Bx,By,Cx,Cy,Dx,Dy,判断线段AB与线段CD是否相交。 由于问题比较简单,没有用到向量、叉积什么的,而是用了奇怪的作图法+不证明直接推广法(?)。 可以画个图验证一下。对于稍难的计算几何题,这些奇技淫巧就没有用了。#include <stdio.h>int main() { int x1, y1, x2,原创 2017-12-17 22:55:20 · 200 阅读 · 0 评论 -
计算多边形面积
说明我们假定得到了按照逆时针顺序给出的 n 个顶点的坐标(x1, y1, x2, y2… xn, yn)且坐标均为整数。 那么最简洁的方法就是计算向量叉积(其实也是算行列式)来求,对凹多边形也适用。直观的理解是将多边形分为了若干个小三角形分别求面积。#include <iostream> #include <cstdio> #include <cmath> using namespace std;原创 2018-01-10 20:20:18 · 359 阅读 · 0 评论 -
EOJ 1126 最近点对
题目简介 给定平面上的一些点,求最近点对。 说明 本来是个复杂的分治题,不知道是不是因为数据弱我疯狂取min也AC了……留坑待填。 #include #include #include using namespace std; struct point{double x, y;}p[100001]; bool cmp(point a, point b) { if原创 2018-01-30 12:09:45 · 254 阅读 · 0 评论 -
判断线段是否与矩形相交
输入格式: xstart ystart xend yend xleft ytop xright ybottom Note: The terms top left and bottom right do not imply any ordering of coordinates. 计算几何题对我来说,光是写对就要花很久,而代码还要做到既简洁又易懂真是难上加难…… 注意点在于:原创 2018-02-07 22:00:11 · 4375 阅读 · 3 评论 -
EOJ 1189/POJ 1113/HDU 1348 Wall
题目简介 给定平面上的n个点及半径r,求圆的周长与凸包周长之和。 说明 记录一下Graham求凸包的模板。 #include <bits/stdc++.h> using namespace std; const double PI = acos(-1.0); const int maxn = 1005; struct point {int x, y;}p[maxn]...原创 2018-02-17 22:15:22 · 228 阅读 · 0 评论