计算几何
文章平均质量分 83
utoppia
这个作者很懒,什么都没留下…
展开
-
模板,凸包
int TuBao(P p[],int n,P q[]){ int m = 0; sort(p,p+n); for(int i=0;i<n;++i) { while (m>1 && dcmp(cross(q[m-2],q[m-1],p[i]))<=0) m--; q[m++] = p[i]; } int k = m;原创 2014-04-30 10:24:45 · 631 阅读 · 0 评论 -
SGU 227. The art to the broad masses!
Link To The ProblemSolution : 圆交、点在弧上的判断PS: SGU 的数据真真有点恶心,一开始完全没有意识到还有重合的情况啊。。Code:// SGU 227 The art to thr broad masses// Solution :圆交、点在弧上的判断、// 两弧相交的结果是,一个点、两个点、一段弧、没有//#in原创 2013-10-22 09:54:39 · 685 阅读 · 0 评论 -
UVa 10794 The Deadly Olympic Returns!!!
Link To The ProblemSolution : 数学,计算Code://UVa 10794// | a-b |^2 = |a|^2 + |b|^2 + 2*(a*b) #include#include#include#include#include#includeusing namespace std;#define dbg(x)原创 2013-10-22 08:39:35 · 769 阅读 · 0 评论 -
Uva 10792 The Laurel-Hardy Story
Link To The ProblemSolution : Math Code:// UVa 10792 The Laurel Hardy Story// Math#include#include#include#include#include#include#includeusing namespace std;#define FOR(i原创 2013-10-21 19:30:59 · 718 阅读 · 0 评论 -
SGU 110. Dungeon
Link To The Problem知识点: 三维 直线和球的交、向量旋转Code:// SGU 110 Dungeon// 三维直线和圆的交、向量旋转#include#include#include#include#include#includeusing namespace std;#define nMax 10010#define原创 2013-10-18 17:06:31 · 665 阅读 · 0 评论 -
ZOJ 3226 Mobile Positioning
Link To The ProblemSolution : Step 1 : 求出B点的坐标(注意时间可能为0)Step 2 : 求出A点的坐标PS:一定要注意所有可能的情况。。。极其猥琐。。。Code : // ZOJ 3226 Mobile Positioning// Geometry & Math Calculate#include原创 2013-10-24 16:31:56 · 839 阅读 · 0 评论 -
Ural 1043
//知识点:基本计算几何#include#include#include#include#include#include#include#includeusing namespace std;#define nMax 300#define LL long long#define rep(i,b,n) for(int (i)=(b);(i)<(n);(i)原创 2013-10-18 12:09:44 · 539 阅读 · 0 评论 -
WF 2007 (UVaLive 2397) - Collecting Luggage
Link To The Problem知识点: 二分,最短路,线段和多边形判交Code:// WF 2007 (UValive 2397 Collecting Luggage// 知识点:二分,最短路,线段和多边形判交#include#include#include#include#include#include#includeusing na原创 2013-10-18 11:18:17 · 2865 阅读 · 0 评论 -
NEERC 2009 ( UValive 4589) Asteroids
Link To The Problem求凸包,重心,然后分别求重心到面的最短距离,相加即可。//重心,三维凸包#include#include#include#include#include#includeusing namespace std;#define dbg(x) cout << __LINE__ << ": " << #x << " = "原创 2013-10-17 15:37:11 · 767 阅读 · 0 评论 -
Shanghai 2004 ( UVALive 3259) Amphiphilic Carbon Molecules
Link To The Problem采用了枚举加扫描的方法,注意极角排序的方式。知识点 : 极角,叉积Code:// ShangHai 2004 (UValive 3529)// 知识点:极角排序,叉积#include#include#include#include#include#includeusing namespace原创 2013-10-17 15:20:31 · 631 阅读 · 0 评论 -
NEERC 2008 Aerodynamics
Link To The Problem转化成2维的凸包// 3D截面 + 2D凸包 #include#include#include#include#include#includeusing namespace std;#define nMax 110#define sf scanf#define pf printf#define rep原创 2013-10-17 12:20:59 · 768 阅读 · 0 评论 -
UVa 11189 A Simple Pendulum
Link To The Problem久 WA 必 AC。。。知识点: 多边形重心、圆和线段的交、点到线段距离、点在线段的投影等基本知识。Code:#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b) for(int (i)=(原创 2013-10-17 11:48:40 · 692 阅读 · 0 评论 -
POJ 2540 Hotter Colder
POJ 2540 Hotter Colder用半平面切割巨型,维护剩下的多边形。#include#include#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)#define原创 2013-08-22 22:38:00 · 708 阅读 · 0 评论 -
WF 2008 (UVaLive4127 ) - The Sky is the Limit
Link To The ProblemSolution : 离散,模拟Code :// WF 2007 The Sky is the limit// Solution : 离散#include#include#include#include#include#include#includeusing namespace std;#defin原创 2013-10-21 23:59:22 · 789 阅读 · 0 评论 -
Ural 1046 Geometrical Dreams
Link To The ProblemSokution : 用复数类可以使问题大大简化Code:#include#include#include#include#include#include#include#include#includeusing namespace std;#define nMax 300#define LL long原创 2013-10-22 01:18:41 · 867 阅读 · 0 评论 -
HDU 1007 Quoit Design
最近点对 。#include #include #include #include #include using namespace std;#define sf scanf#define pf printf#define rep(i,n) for(int (i)=0;(i)<(n);(i)++)#define dbg(x) cerr << "__LINE__原创 2013-11-10 12:56:53 · 809 阅读 · 0 评论 -
SGU 244. Height, Bisector and Median
Link To The ProblemSolution : 二分、二分a的长度,然后根据l,h计算出角平分线的长度,判断即可。。。Code: // SGU 244 Height Bisector and Median// Solution : Math Calculate//#include#include#include#include#inclu原创 2013-10-24 00:10:49 · 933 阅读 · 0 评论 -
SGU 283. Mechanics
Link To The ProblemSolution : 先判断是否碰撞、然后模拟。Code:// SGU 283 Mechanics// Solution : 模拟//#include#include#include#include#include#include#includeusing namespace std;#define F原创 2013-10-22 23:03:08 · 662 阅读 · 0 评论 -
Amritapuri 2009 (UValive 4676 ) - Geometry Problem
Link To The ProblemSolution : 由于x的范围是10e7,平方的话是10e14,double 的精度可能判不到小的eps。所以在做叉积或者点积做判断的时候注意取方向向量就好。。。否则。。。WA。。。Code :// Amritapuri 2009 Geometry Problem// Solution : 模拟//#include原创 2013-10-23 01:54:07 · 1047 阅读 · 0 评论 -
CERC 1999 (SPOJ 40) Lifting the Stone
Link To The ProblemSolution : 多边形的重心PS : POJ 神数据就是过不掉,SPOJ上1A.。。(尴尬。。。)Code: // CERC 1999 Lifting The Stone// Solution : 多边形的重心//#include #include #include #include #include原创 2013-10-23 00:00:34 · 880 阅读 · 0 评论 -
SGU 446. Rotation Estimation
Link To The ProblemSolution : 枚举旋转的角度、注意精度,开到1e-6就行了,太大了可能出错Code:// SGU 446 Rotation Estimation// 枚举、凸包、旋转#include#include#include#include#include#include#includeusing names原创 2013-10-22 13:16:12 · 743 阅读 · 0 评论 -
Beijing 2004 (UVaLive 3137) - Square
Link To The ProblemSolution : 构造、点到线段的最短距离Code:// Beijing 2004 Square// Solution : 构造//#include#include#include#include#include#include#includeusing namespace std;#define原创 2013-10-22 11:50:31 · 628 阅读 · 0 评论 -
Shanghai 2004(UVaLive 3263) - That Nice Euler Circuit
Link To The ProblemSolution : 离散化,欧拉平面公式: V - E + F = 2// Shanghai 2004 That Nice Euler Circuit// Solution : #include#include#include#include#include#include#includeusing namespac原创 2013-10-22 01:09:37 · 815 阅读 · 0 评论 -
Ural 1030. Titanic
Link To The ProblemCode:#include#include#include#include#include#include#include#includeusing namespace std;#define nMax 300#define LL long long#define rep(i,b,n) for(int原创 2013-10-21 19:16:04 · 592 阅读 · 0 评论 -
UVa 11265 The Sultan's Problem
Link To The ProblemSolution : 半平面交、多边形面积Code:// UVa 11265 The Sultan's Problem// HalfPlane Intersection//#include#include#include#include#include#include#include#includeus原创 2013-10-22 10:33:40 · 717 阅读 · 0 评论 -
Ural 1052
#include#include#include#include#include#includeusing namespace std;#define nMax 500#define LL long longtypedef pair point ;#define x first#define y seconddouble const eps = 1e-9;int原创 2013-10-22 14:08:59 · 661 阅读 · 0 评论 -
SGU 253. Theodore Roosevelt
Link To The ProblemSolution : 三角剖分、二分、极角排序Code://SGU 253 Theodore Roosevelt//Solution : 三角剖分、二分#include#include#include#include#include#include#includeusing namespace std;#原创 2013-10-22 11:14:27 · 770 阅读 · 0 评论 -
POJ 1279 Art Gallery
POJ 1279 Art Gallery半平面交的直接应用。#include#include#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)#define DOR(i,a,b原创 2013-08-22 19:12:46 · 568 阅读 · 0 评论 -
POJ 1474 Video Surveillance
POJ 1474 Video Surveillance半平面交模板。。。就是拿来测试的。。。。#include#include#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)++原创 2013-08-22 11:30:51 · 734 阅读 · 0 评论 -
POJ 3384 Feng Shui
POJ 3384 Feng Shui将半平面压进r长度,然后求交。选上面距离最远的两个点。#include#include#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)原创 2013-08-22 21:10:43 · 562 阅读 · 0 评论 -
poj 1066 Treasure Hunt
题目的意思就是从边界某个点出发到目标点问最少要和多少条线段相交。枚举边界上的点判断就行了。注意n=0时ans=1CODE:#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)#d原创 2013-07-27 14:37:11 · 508 阅读 · 0 评论 -
poj 1269 Intersecting Lines
直线和直线的位置关系判断:1)重叠: 判断方法就是四点共线。2)平行: 判断的方法就是叉积为0 且 四点不共线3)相交: 交点的坐标就是利用类似定比分点公式的方法;Code:/*判断直线和直线位置关系和求交点*/#include#include#include#include#include#includeusing namespace std;#原创 2013-07-27 09:47:14 · 539 阅读 · 0 评论 -
poj 2653 Pick-up sticks
数据比较水,暴力破无压力。CODE:#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)#define DOR(i,a,b) for(int (i)=(a);(i)>=(b);(i)--)原创 2013-07-27 13:12:52 · 519 阅读 · 0 评论 -
poj 1410 Intersection
题目描述良心大大地坏,大家一定要注意最后输入矩形的时候不一定是左上右下的输入,所以要做判断根据题目意思,一条线段和矩形相交就是分成两部分:1)矩形的四条边之一和这条线段相交2)这条线段有一个点在矩形内于是可以AC了CODE:#include#include#include#include#include#includeusing namespace s原创 2013-07-27 15:01:00 · 464 阅读 · 0 评论 -
poj 3304 Segments
经典的计算几何。。。注意到符合条件的直线一定可以经过其中的两个端点,枚举端点就可以判断。。直线和线段是否相交的问题。判断就是线段的两个端点是否都在直线的同一侧。。跨立试验。。Code:#include#include#include#include#include#includeusing namespace std;#define FOR(i,原创 2013-07-26 11:06:40 · 489 阅读 · 0 评论 -
POJ 2318 TOYS
#include#include#include#include#includeusing namespace std;#define FOR(i,a,b) for(int (i)=(a);(i)<=(b);(i)++)#define DOR(i,a,b) for(int (i)=(a);(i)>=(b);(i)--)#define oo 1<<30#define eps 1e原创 2013-07-25 10:32:34 · 479 阅读 · 0 评论 -
POJ 3449 Geometric Shapes
3449题目大意就是给你一堆多边形,输出每个多变形相交的其他多边形的name。恶心的输入输出格式。实际上考察的是线段的相交问题。注意小心就不会出错了。代码居然有5+K,额。。。CODE:#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b原创 2013-07-31 16:34:19 · 817 阅读 · 0 评论 -
poj 2826 An Easy Problem?!
好不EASY的EasyProblem。。。各种WA啊。。。注意考虑的情况中有一种是其中一块板在能盛水的情况下会不会被另一个板挡住而没法接住雨水。。。注意问的是能接多少水而不是能装多少水CODE:#include#include#include#include#include#includeusing namespace std;#define FOR(i,a,b)原创 2013-07-29 11:23:48 · 593 阅读 · 0 评论 -
sgu 151 Construct a triangle
题目描述:151. Construct a triangletime limit per test: 0.5 sec.memory limit per test: 4096 KBinput: standard inputoutput: standard outputFind coordinates of any triangle ABC if i原创 2012-11-04 16:45:21 · 415 阅读 · 0 评论 -
sgu 136 Erasing Edges
题目描述:136. Erasing Edgestime limit per test: 0.5 sec. memory limit per test: 4096 KBLittle Johnny paintedon a sheet of paper a polygon with N vertices. Then, for every edgeof the polygo原创 2012-11-02 18:20:08 · 501 阅读 · 0 评论