几何
键盘上的精灵
这个作者很懒,什么都没留下…
展开
-
zoj 3203 Light Bulb(三分)
DescriptionCompared to wildleopard's wealthiness, his brother mildleopard is rather poor. His house is narrow and he has only one light bulb in his house. Every night, he is wandering in his incommo原创 2016-05-24 08:38:55 · 511 阅读 · 0 评论 -
HDU 1756 Cupid's Arrow(点在多边形内判定)
Problem Description传说世上有一支丘比特的箭,凡是被这支箭射到的人,就会深深的爱上射箭的人。世上无数人都曾经梦想得到这支箭。Lele当然也不例外。不过他想,在得到这支箭前,他总得先学会射箭。日子一天天地过,Lele的箭术也越来越强,渐渐得,他不再满足于去射那圆形的靶子,他开始设计各种各样多边形的靶子。不过,这样又出现了新的问题,由于长时间地练习射箭,Lele的视力原创 2016-05-09 14:05:27 · 1246 阅读 · 0 评论 -
poj 2187 Beauty Contest(凸包)
DescriptionBessie, Farmer John's prize cow, has just won first place in a bovine beauty contest, earning the title 'Miss Cow World'. As a result, Bessie will make a tour of N (2 <= N <= 50,000) farm原创 2016-05-31 17:33:43 · 439 阅读 · 0 评论 -
凸包问题的五种解法
前言:首先,什么是凸包? 说凸包首先要说凸性的定义,简单点说就是平面邻域中任意两点所在的线段上的点都在该邻域中,则该邻域具有凸性。简单推敲一下,就可以发现如果邻域中存在一阶导数不连续的点一定无法被某点集线性表示出来。再往下的内容属于数学分析了,对我们的算法设计帮助不大,暂时先不管。假设平面上有p0~p12共13个点,过某些点作一个多边形,使这个多边形能把所有点都“包”起来。当这个多边形原创 2016-05-07 10:08:51 · 10003 阅读 · 2 评论 -
nyoj 142 管道问题(线段相交问题)
描述有一宽度为1的折线管道,如图所示,上面的各个定点为 (x0,y0),(x1,y1),(x2,y2) ……(xn,yn),下面各个定点为(x0,y0-1),(x1,y1-1),(x2,y2-1)……(xn,yn-1),假设管道都是不透明的,不反射的,光线从左边入口的(x0,y0),(x0,y0-1)之间射入,向四面八方直线传播,问光线最远能射到哪里(x坐标)或能穿透整个管道。原创 2016-05-06 20:28:22 · 550 阅读 · 0 评论 -
平面内两条线段的位置关系(相交)判定与交点求解
概念外积,又称叉积,是向量代数(解析几何)中的一个概念。两个二维向量v1(x1, y1)和v2(x2, y2)的外积v1×v2=x1y2-y1x2。如果由v1到v2是顺时针转动,外积为负,反之为正,为0表示二者方向相同(平行)。此外,文中涉及行例式和方程组的概念,请参阅线性代数的相关内容。为方便计算,对坐标点的大小比较作如下定义:x坐标较大的点为大,x坐标相等但y坐标较大的为大,x与y转载 2016-05-06 11:20:53 · 2426 阅读 · 0 评论 -
nyoj 1132 promise me a medal(线段相交问题)
题意:给你两条线段的四个端点,判断两条线段是否相交,相交并求交点。这题不严谨,还有两条线段重合的部分,如果重合,交点有无数个,而ac的代码仅输出了重合的端点。///判断两直线相交方法:两条相交的线段必然相互跨立,简单的讲就是p1和p2两点位于L2的两侧且p3和p4两点位于L1的两侧,这样就可利用外积做出判断了。#include#include#include#includeu原创 2016-05-06 16:57:11 · 476 阅读 · 0 评论 -
nyoj 1099 Lan Xiang's Square(判断正方形问题)
给四个点判断是否能构成正方形。正方形判定定理:1:对角线相等的菱形是正方形2:对角线互相垂直的矩形是正方形,正方形是一种特殊的矩形3:四边相等,有一个角是直角的四边形是正方形4:一组邻边相等的矩形是正方形5:一组邻边相等且有一个角是直角的平行四边形是正方形6:四边均相等,对角线互相垂直平分且相等的平面四边形没考略到sqrt()损失精度问题wrong了几次,四原创 2016-05-06 09:54:22 · 2071 阅读 · 1 评论 -
nyoj 83 迷宫寻宝(二)(线段相交问题)
描述一个叫ACM的寻宝者找到了一个藏宝图,它根据藏宝图找到了一个迷宫,这是一个很特别的迷宫,迷宫是一100*100的个正方形区域,里面有很多墙,这些墙都是由一些直线构成的,如下图。 墙把迷宫分隔成很多藏宝室,任何两个藏宝原创 2016-05-06 08:11:09 · 586 阅读 · 0 评论 -
nyoj 952 最大四边形
描述平面坐标上有n个点,你知道能组成四边形中面积最大的是多少吗?输入有多组测试数据第一行整数n,表示有n个点,( 4然后n行,每行x,y表示点的坐标。(没有重复的点)输出最大四边形的面积.(保留六位小数)样例输入50 00 44 04 42 3样例输出16.000000思路:以O(n2)枚举每一条边,以这条边作为四边形的对角线原创 2016-05-05 20:06:58 · 807 阅读 · 0 评论 -
nyoj 1011 So Easy[II](求多变形的面积)
描述这是一道基础的计算几何问题(其实这不提示大家也都看的出)。问题描述如下:给你一个N边形。且N边形的点是由顺时针顺序给出,求这个N边形的面积。(3输入输入多组数据。第一行输入一个N。接下来N行每行有两个数a,b表示一个点。0输出输出N变形的面积,最终结果保留两位小数。(不要输出多余的信息)样例输入378 28 94 19 35 97 样例输出358原创 2016-05-05 17:30:27 · 750 阅读 · 0 评论 -
nyoj 3 多边形重心问题
描述在某个多边形上,取n个点,这n个点顺序给出,按照给出顺序将相邻的点用直线连接, (第一个和最后一个连接),所有线段不和其他线段相交,但是可以重合,可得到一个多边形或一条线段或一个多边形和一个线段的连接后的图形;如果是一条线段,我们定义面积为0,重心坐标为(0,0).现在求给出的点集组成的图形的面积和重心横纵坐标的和;输入第一行有一个整数0每组数据第一行有一个整数m输原创 2016-05-05 18:41:44 · 445 阅读 · 0 评论 -
UVA 11178 Morley's Theorem
Morley定理是这样的,作三角形ABC每个内角的三等分线,相交成三角形DEF,则DEF是等边三角形。你的任务是根据A,B,C 3个点的位置确定D,E,F 3个点的位置。 #include#include#includeusing namespace std;struct Point{ double x, y; Point(double x =原创 2016-05-16 16:33:21 · 460 阅读 · 0 评论 -
圆与三角形(圆与三角形是否相交)
给出圆的圆心和半径,以及三角形的三个顶点,问圆同三角形是否相交。相交输出"Yes",否则输出"No"。(三角形的面积大于0)。 Input第1行:一个数T,表示输入的测试数量(1 4-1:三个数,前两个数为圆心的坐标xc, yc,第3个数为圆的半径R。(-3000 4-2:2个数,三角形第1个点的坐标。4-3:2个数,三角形第原创 2016-05-16 15:54:13 · 1502 阅读 · 0 评论 -
HDU 1147 Pick-up sticks(线段相交)
DescriptionStan has n sticks of various length. He throws them one at a time on the floor in a random way. After finishing throwing, Stan tries to find the top sticks, that is these sticks such that原创 2016-05-16 10:53:25 · 330 阅读 · 0 评论 -
HDU 4709 Herding(求三角形面积)
DescriptionLittle John is herding his father's cattles. As a lazy boy, he cannot tolerate chasing the cattles all the time to avoid unnecessary omission. Luckily, he notice that there were N trees i原创 2016-05-16 08:51:44 · 492 阅读 · 0 评论 -
HDU 1086 You can Solve a Geometry Problem too(水题)
题意:给你几条线段统计有几个交点#includeusing namespace std;struct point{ double x,y;};struct line{ point st,en;}l[101];double cross(point a,point b,point c)///叉积{ return (b.x-a.x)*(c.y-a.y)-(原创 2016-05-09 16:50:48 · 317 阅读 · 0 评论