
ACM-数论-计算几何
拔丝奶糖54
许我向你看,lllll
展开
-
计算几何【1】叉积的应用,判断点在不在某个多边形内+点阵内图形面积(只有公式)
【1】计算点阵内图形面积:右边那个图就是一个点阵 计算类似这样一个图形的面积、边上的格点数、内部格 点数,解法: 这里用到一个定理,叫 pick 定理 面积=边上点数/2-1+内部点数 求边上的点数直接用 gcd(dx,dy)就可以了。(c++11有__gcd(x,y)可以用) 网格图是一个神奇的图,里面有很多诡异的结论。 【2】叉积的应用,判断点在不在某个多边形内 只要都在同一个原创 2017-12-08 12:05:41 · 743 阅读 · 0 评论 -
计算几何【2】 判断凹凸多边形
凸边形满足 Pi Pi+1位于Pi-1 Pi的同一指针方向 要么都在顺时针方向,要么都在逆时针方向 凹变形不满足; 故判断凹凸只需要Pi Pi+1、Pi-1 Pi叉积的符号是否一致即可 代码:#include<bits/stdc++.h>using namespace std;#define N 1000struct point{ int x,y; point() {}原创 2017-12-08 12:25:34 · 1224 阅读 · 2 评论 -
计算几何【3】 判断相交+poj2563+极角排序+poj 2007
判断相交的模板:Line l[maxn];bool inter(Line l1,Line l2){ return max(l1.s.x,l1.e.x) >= min(l2.s.x,l2.e.x) && max(l2.s.x,l2.e.x) >= min(l1.s.x,l1.e.x) && max(l1.s.y,l1.e.y) >= min(l原创 2017-12-08 20:37:57 · 217 阅读 · 0 评论 -
计算几何【4】精度问题
计算几何头疼的地方一般在于代码量大和精度问题,代码量问题只要平时注意积累模板一般就不成问题了。精度问题则不好说,有时候一个精度问题就可能成为一道题的瓶颈,简直“画龙点睛”。这些年的题目基本是朝着越来越不卡精度的方向发展了,但是也不乏一些%^&%题#$%$^,另外有些常识不管题目卡不卡,都是应该知道的。今天我就开膛回顾下见过且还有印象的精度问题,由于本人见识和记忆均有限,望各位大神瞄过后不吝补充。另外转载 2017-12-08 20:41:47 · 335 阅读 · 0 评论 -
凸多边形的宽度
求凸多边形的宽度; 凸多边形的宽度就是凸多边形的最短对踵点;#include<bits/stdc++.h>using namespace std;const int N=115;int n;double ans=1e100;struct P{ int x,y; P() {} P(int _x,int _y) { x=...原创 2018-08-28 19:28:07 · 1673 阅读 · 0 评论 -
求多个点围成的多边形面积
#include<cstdio>using namespace std;double ans;int n;struct Point{ int x,y;} a[1000000];int main(){ int t; scanf("%d",&t); while(t--) { ans=0; sc...原创 2018-08-21 19:59:40 · 2831 阅读 · 0 评论 -
凸包
【1】求凸包的周长#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#define N 105#define eps 1e-8using namespace std;struct p...原创 2018-09-11 18:45:38 · 146 阅读 · 0 评论 -
计算几何之判断两条直线的关系
原理: 共线: 由叉积的原理知道如果p1,p2,p3共线的话那么(p2-p1)X(p3-p1)=0。因此如果p1,p2,p3共线,p1,p2,p4共线,那么两条直线共线。叉积为0说明共线。平行: 由向量可以判断出两直线是否平行。如果两直线平行,那么向量p1p2、p3p4也是平等的。即((p1.x-p2.x)(p3.y-p4.y)-(p1.y-p2.y)(p3.x-p4.x))==0说明向...原创 2018-09-10 19:08:53 · 3242 阅读 · 0 评论