计算几何
nymph181
这个作者很懒,什么都没留下…
展开
-
【计算几何】SSL_1213 多边形面积
题意 给出NNN点,其中第iii个点连向第i+1i+1i+1条边,计算其组成的多边形的面积,如果不能组成多边形,输出ImpossibleImpossibleImpossible。 思路 判断不能组成多边形的情况,只用判断两条线是否相交即可。 面积我们可以利用叉积的求法,每次取出连续的三个点计算面积,答案为它们的和的绝对值。 代码 #include<cmath> #include<...原创 2019-01-03 16:42:04 · 186 阅读 · 0 评论 -
【计算几何】POJ_1262 地板覆盖问题(Input)
题意 在一个n∗mn*mn∗m的地板里放ttt块砖。 如果有砖交叉覆盖,则输出NONDISJOINTNONDISJOINTNONDISJOINT 否则如果有砖超出了地板,则输出NONCONTAINEDNONCONTAINEDNONCONTAINED 否则如果有部分地板没有被覆盖,则输出NONCOVERINGNONCOVERINGNONCOVERING 否则输出OKOKOK。 思路 这道题判断交叉比...原创 2018-12-29 19:34:24 · 294 阅读 · 0 评论 -
【计算几何】SSL_1715 计算面积
题意 给出333个点的坐标,求出这个坐标构成的平行四边形的面积。 思路 利用这333个点组成的平行四边形的面积就为这333个点的叉积的绝对值。 公式:点p1(x1,y1)p1(x1,y1)p1(x1,y1)和点p2(x2,y2)p2(x2,y2)p2(x2,y2)相对原点(0,0)(0,0)(0,0)的叉积为m=(x1∗y2)−(x2∗y1)m=(x1*y2)-(x2*y1)m=(x1∗y2)−(...原创 2018-12-29 20:00:35 · 157 阅读 · 0 评论 -
【计算几何】ZOJ_1041 SP898 Transmitters
题意 给出一个半径为rrr的半圆形的圆心坐标,求出它最多能覆盖的点。 思路 首先我们可以先把超出圆的半径的点排除掉。 然后我们每次枚举一个点为中间的分割线,把这个平面分成两边,我们利用叉积求出左边和右边的点的个数,求最大值就好了。 代码 #include<cmath> #include<cstdio> #include<algorithm> int n, an...原创 2018-12-30 08:39:02 · 151 阅读 · 0 评论 -
【计算几何 凸包】洛谷_2742 二维凸包 / [USACO5.1]圈奶牛Fencing the Cows
题意 给出一些点,求出其中的凸包长度。 思路 grahamgrahamgraham算法。 首先把点按照极角排序,这样子可以保证是逆时针来选点的。 每次扫描一个点进栈,如果往外拐了说明中间凹了进去(利用叉积判断)。 最后扫描栈里的点,计算凸包长度。 代码 #include<cmath> #include<cstdio> #include<algorithm> s...原创 2019-01-04 20:29:09 · 187 阅读 · 0 评论 -
【计算几何 凸包】POJ_3348 Cows
题意 求出凸包的面积/50。 思路 用grahamgrahamgraham算法算出凸包的点,然后再用叉积算出多边形的面积就好了。 代码 #include<cmath> #include<cstdio> #include<algorithm> struct P{ double x, y, q; }p[10001]; int s[10001], top; i...原创 2019-01-04 21:09:57 · 125 阅读 · 0 评论 -
【计算几何】JZOJ_6290 倾斜的线
题意 给出ppp和qqq,以及nnn个点,求出其中最接近p,qp,qp,q的斜率。 思路 代码 #include <cmath> #include <cstdio> #include <algorithm> #define file(x) freopen(#x".in", "r", stdin), freopen(#x".out", "w", stdout) ...原创 2019-08-17 20:30:29 · 173 阅读 · 0 评论