![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算几何
文章平均质量分 50
。十二。
这个作者很懒,什么都没留下…
展开
-
【Poj 3348】Cows【凸包】
解题思路凸包模板题,算出所有点后用叉积计算面积,答案/2/50就好了代码#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<map>#define ll long long#define db doubleusing namespace std;int n,cnt;db..原创 2022-01-20 22:09:22 · 229 阅读 · 0 评论 -
【洛谷 P2742】 圈奶牛Fencing the Cows 【模板】【凸包】
解题思路极角:纵坐标比横坐标y1/x1y1/x1y1/x1 与 y2/x2y2/x2y2/x2比较 即p0p1p2p0p1p2p0p1p2的叉积x1∗y2−x2∗y1x1*y2-x2*y1x1∗y2−x2∗y1的正负来判断极解的大小。详解见 凸包代码#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#i..原创 2022-01-20 22:06:48 · 272 阅读 · 0 评论 -
【POJ 3304】Segments【计算几何】
解题思路题意:在一个平面上,给你n个线段,问是否存在一条直线,使得将这些线段投影到上面之后,所有投影线段至少有一个共同点。PS:投影就是线段的两个端点向直线作垂线所包含的区域。我们可以把题意转换一下,投影有一个公共的交点就相当于有一条与那条直线的垂直的直线必过所有线段。然后我们就去找是否有一条直线与所有线段相交就好了。考虑这样的直线不止一条,且它通过平移,旋转,肯定会与线段的端点相交。两点确定一条直线,我们枚举两个线段的端点作为直线,判断是否存在一条这样的直线与所有线段都相交就好了。PS:判断..原创 2022-01-20 12:04:45 · 117 阅读 · 0 评论 -
【POJ 1127】Jack Straws【计算几何】
解题思路题意:给出 n 条线段端点的坐标,然后给出若干组询问。每组询问包含两个数字,输出这两个数字代表的线段是否联通。线段从 1 到 n 编号。通过联通的线段间接连在一起的线段,认为这两条线段也是联通的。直接枚举所有线段,判断两辆是否相交,然后用Floyed传递闭包处理间接相连的情况。最后O(1)判断是否联通就好代码#include<iostream>#include<cstdio>#include<cstring>#include<cmath...原创 2022-01-20 11:56:51 · 133 阅读 · 0 评论 -
【POJ 1066】Treasure Hunt【计算几何】
解题思路题意:在一个矩形区域内,有n条线段,线段的端点是在矩形边上的,有一个特殊点,问从这个点到矩形边的最少经过的线段条数最少的书目,穿越只能在中点穿越。根据myc巨爷所言,枚举每道墙的端点和p的连线,则这条线段和墙的交点的次数最小值即为需要炸墙的最小次数。记得最外面的四个顶点也算做端点,还有端点原本所在的那个墙不算,即不考虑共线的情况PS:最后要加1,因为最外围的墙也要炸。代码#include<iostream>#include<cstdio>#include...原创 2022-01-20 11:51:56 · 103 阅读 · 0 评论 -
【Poj 1654】Area【计算几何】【叉积】
解题思路题目大意:一个坐标系,从原点开始走,然后1-4分别代表,向右下走,向右走,向右上走,向下走,5代表回到原点,6-9代表,向上走,向左下走,向左走,向左上走。(看翻译直接无限WA),给出一串包含1-9的字符串,问你这些点所围成的面积把每个数字对应横纵坐标的变化量预处理出来(就像广搜的dx,dy一样)dx[10]= {0,1,1,1,0,0,0,-1,-1,-1},dy[10]= {0,-1,0,1,-1,0,1,-1,0,1};这样我们就能先求出每个点的坐标,而他们又是有序的且一定能...原创 2022-01-17 18:21:02 · 113 阅读 · 0 评论 -
【POJ 2007】Scrambled Polygon【计算几何】【叉积】
解题思路题意:从第一个点开始逆时针输出组成多边形的点凸包Graham算法求q中y坐标最小的点p0,若具有最小坐标的点有多个,则取最左边的点作为po.对q中剩余的点按逆时针相对p0的极角排序(也就是按极角从小到大排序)打印按逆时针排列的栈中的各顶点这道题已经告诉我们p0就是(0,0)了,就直接做就好了。代码#include<iostream>#include<cstdio>#include<iomanip>#includ...原创 2022-01-15 13:51:55 · 150 阅读 · 0 评论 -
【SSL 1213】多边形面积(difficult)【计算几何】【叉积】
解题思路这道题就是 多边形面积 与 判断线段相交的综合题:先对于每一条边判断除了他本身和相连的前后两条边是否还与其它的边相交,是就输出impossible,注意n,1那条边不要漏了。PS:特判边数<=2,无法组成多边形的情况。还有面积算完记得加绝对值和除以2代码#include<iostream>#include<cstdio>#include<iomanip>#include<cmath>#include<cstring...原创 2022-01-15 09:29:47 · 135 阅读 · 0 评论 -
【洛谷 P2785】 物理1(phsic1)- 磁通量【计算几何】【叉积】
解题思路关于计算多边形面积,可以用叉积,因为叉积的几何意义就是一个四边形的面积。设矢量P=(x1,y1),Q=(x2,y2)P = ( x1, y1 ),Q = ( x2, y2 )P=(x1,y1),Q=(x2,y2),叉积为:P×Q=x1∗y2−x2∗y1P × Q = x1*y2 - x2*y1P×Q=x1∗y2−x2∗y1,其结果是一个标量,叉积的绝对值是一个平行四边形面积$还有一个非常重要性质是:叉积可以通过它的符号(正负)判断两矢量相互之间的顺逆时针关系即:若 P×Q>0P...原创 2022-01-15 08:46:40 · 289 阅读 · 0 评论 -
【51 Nod】1264 线段相交【计算几何】【叉积】
解题思路判断两条线段 p1,p2p1,p2p1,p2 与 q1,q2q1,q2q1,q2 是否相交,分为两步:跨立试验 如果两线段相交,则两线段必然相互跨立对方。若P1P2跨立Q1Q2 ,则矢量 ( P1 - Q1 ) 和( P2 - Q1 )位于矢量( Q2 - Q1 ) 的两侧,即( P1 - Q1 ) × ( Q2 - Q1 ) * ( P2 - Q1 ) × ( Q2 - Q1 ) < 0。上式可改写成( P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 )..原创 2022-01-15 08:35:31 · 178 阅读 · 0 评论 -
【SSL 1715】计算面积【计算几何】【叉积】
解题思路手画一下可以发现,一共只有3种可能的平行四边形,而且面积就是这三个点的叉积。然后就无了PS:记得加绝对值代码#include<iostream>#include<cstdio>#include<iomanip>#include<cmath>#include<cstring>#define ll long longusing namespace std;int n,a[10],b[10];double ans;..原创 2022-01-14 16:02:53 · 1487 阅读 · 0 评论 -
【SSL 1232】雷达覆盖(normal)【计算几何】【叉积】
解题思路题意大概就是一个可以旋转的半圆,停止时能覆盖最多多少点。先把那些肯定无法被覆盖的排掉,然后每次以一个点与中点组成一个直线,再枚举其他点,用叉积判断在直线上方还是下方,在这条直线上边的m1++m1++m1++,在下边的m2++m2++m2++,在直线上的s++s++s++,完后比较m1+sm1+sm1+s与maxmaxmax的大小和b+m2b+m2b+m2与maxmaxmax的大小 。代码#include<iostream>#include<cstdio>#i..原创 2022-01-14 15:59:09 · 1091 阅读 · 0 评论