
计算几何
Helloirbd
1
展开
-
comet OJ Special Judge
题目描述有一个nn个点mm条边的图画在了平面上,你想知道有多少对边之间对应的线段相交。特别地,对于图中的一对边,如果有公共点且只在对应的端点相交,那么我们不认为这对边相交。输入描述第一行两个整数n, m(1\leq n\leq 1000, 1\leq m\leq 2000)n,m(1≤n≤1000,1≤m≤2000),表示点数和边数。接下来mm行,每行两个整数(u,v)(u,...原创 2019-01-24 22:06:56 · 512 阅读 · 0 评论 -
POJ - 1127 Jack Straws 线段相交+Floyd
题目链接:https://vjudge.net/problem/POJ-1127题目大意:给出n条线段,线段相交即连通,判断任意两条线段是否连通题目解析:首先根据线段相交得出一个邻接矩阵,然后根据Floyd算法,得出一个更直接的直接能看出两条线段是否相连的邻接矩阵也可以用BFSAC代码:#include<iostream>#include<cst...原创 2019-09-24 00:30:45 · 247 阅读 · 0 评论 -
POJ 1118 Lining Up
/*【题目】POJ 1118 【题意】判断多个点中最多有多少个点共线【题解】按横纵坐标大小排序,从小到大遍历每一个点,计算该点与剩余点的斜率,记录到数组中在数组中查找有有多少个斜率相同的点注意只有两个点的情况,应该输出2 */#include<iostream>#include<vector>#include<cstdio> #inc...原创 2019-09-23 11:29:27 · 271 阅读 · 0 评论 -
POJ 1031 Fence
题目链接:http://poj.org/problem?id=1031题目大意:略题目解析:求原点能够照射多边形的最大角度,该角度是弧度制下的夹角AC代码:#include<iostream>#include<algorithm>#include<math.h>#include<stdio.h>using names...原创 2019-09-21 00:52:51 · 235 阅读 · 0 评论 -
POJ 3304 Segments
叉积+暴力注意变量前后要保持一致,以为这个问题wa了很多发#include<iostream>#include<cmath>using namespace std;#define maxn 105#define precision 1e-10int n;struct Point{ double x; double y;}; Point L...原创 2019-07-23 13:36:32 · 181 阅读 · 0 评论 -
POJ 2318 TOYS && POJ 2398 Toy Storage
POJ 2318 TOYS计算几何+二分#include<iostream>#include<cmath>#include<algorithm>#include<string.h>#define maxn 5005 using namespace std; double precision=1e-16;struct Poi...原创 2019-07-23 09:51:45 · 198 阅读 · 0 评论 -
向量叉乘判断法
判断两线段是否相交(1)快速排斥试验(2)跨立试验所以判断P1P2跨立Q1Q2的依据是:( P1 - Q1 ) × ( Q2 - Q1 ) * ( Q2 - Q1 ) × ( P2 - Q1 ) >= 0。同理判断Q1Q2跨立P1P2的依据是:( Q1 - P1 ) × ( P2 - P1 ) * ( P2 - P1 ) × ( Q2 - P1 ) >= 0。 这个...原创 2019-01-24 22:13:18 · 2112 阅读 · 0 评论 -
判断一个多边形是否是凸多边形
一个很简单的问题看了好久,但就是提交不过,也看不出是哪出了问题问题为:判断一个多边形是否是凸多边形我的思路是这样的:建立x[],y[]这两个数组用来存放坐标,计算两个向量,然后让计算它们的叉积,如果叉积小于零,说明后一个向量在前一个向量的右侧,即顺时针方向,只要有一个是这样的情况,则不符合条件。然后就是叉积大于零,符合条件,计数加一。等于零共线,直接跳过。最后,要是计数大于3,就说明是凸...原创 2018-08-11 11:36:07 · 4829 阅读 · 2 评论 -
CCPC-Wannafly Winter Camp Day5 Cactus Draw
题目描述你有一棵树,你想把它画在平面上,使得没有边相交。输入描述第一行两个整数n, m (1\leq n\leq 1000, 1\leq m \leq 2000)n,m(1≤n≤1000,1≤m≤2000),表示点数和边数。接下来mm行,每行两个正整数u, v (1\leq u, v\leq n, u\neq v)u,v(1≤u,v≤n,u̸=v),保证不存在重边。输出描述...原创 2019-01-24 22:08:23 · 307 阅读 · 0 评论 -
uva 10969 - Sweet Dream(几何)求圆弧是否被覆盖
题目链接:https://vjudge.net/problem/UVA-10969题目大意:给出多个圆,按顺序输入,下层圆会被后来的上层的圆覆盖住,问最后从上往下看,能看到的圆弧的长度题目解析:从最下层的圆开始,求出该圆与其上层圆的所有交点,然后对这些交点从小到大进行极角排序从最小的点开始,与其后一个相邻的点为一组,求出以这两点划分出的弧的中点,然后将这个中点与上层所有的圆进行...原创 2019-09-27 13:23:06 · 346 阅读 · 0 评论