计算几何
sepNINE
it is written
展开
-
poj 2508 Conic distance 计算几何
题意:求圆锥面上两点之间距离。思路:原创 2014-11-11 11:28:49 · 949 阅读 · 0 评论 -
poj 2556 Edge 向量旋转
//poj 2556//sep9#includeusing namespace std;char s[256];int main(){ while(scanf("%s",&s)==1){ int px=300,py=420; int x=310,y=420; puts("300 420 moveto\n310 420 lineto"); for(int i=0;s[原创 2015-07-05 23:02:00 · 1146 阅读 · 0 评论 -
poj 2660 War on Weather 计算几何
//poj 2660 //sep9#include #include using namespace std;const double pi=acos(-1.0);const double radius=20000.0/pi;struct P{ double x,y,z,angle;}satellite[128];double dist(double x,double y原创 2015-07-05 18:41:13 · 724 阅读 · 0 评论 -
poj 2780 Linearity 最多共线点经典问题
题意:给n个点,其中最多有多少点共线(n分析:这是一个经典问题,朴素n^3解法:枚举n^2条直线,判断每条直线与多少点相交,复杂度n^3。明显会超时。这是n^2logn的解法:枚举每个点,对某个点与其他点连的n条直线按斜率排序,设这些直线中斜率相同的直线有k条,则k更新答案。这里想着重说一下斜率的问题,网上很多代码都是直接算斜率的,但计算几何的题目不推荐用斜率,最好用叉积代替有关斜率的原创 2015-07-03 20:36:36 · 1836 阅读 · 1 评论 -
poj 2932 Coneology 扫面线法
题意:给n个无交点的圆,求这n个圆中不被其它圆包含的圆。分析:扫面线法,用二叉树(set+lowerbound方法)维护最外圆的集合。代码://poj 2932//sep9#include #include #include #include using namespace std;const int maxN=40012;double r[maxN],x[ma原创 2015-07-08 15:45:34 · 1417 阅读 · 0 评论 -
poj 2079 Triangle 凸包+旋转卡壳
旋转卡壳经典问题例题对比~~60行高效精简代码原创 2015-06-18 11:43:14 · 671 阅读 · 0 评论 -
poj 3907 Build Your Home 多边形面积
题意:给一个多边形,求它的面积。分析:算一遍叉积即可。代码://poj 3907//sep9#include #include using namespace std;int main(){ float x0,y0,x1,y1; short n; while(scanf("%hd",&n)==1&&n){ float sum=0; scanf("%f%原创 2015-04-01 21:15:28 · 852 阅读 · 0 评论 -
poj 3990 Fermat Point in Quadrangle 凸包和费马点
题意:求一个四边形的费马点。分析:模拟退火要么超时要么wa,这题的数据就是不想让随机算法过的。。其实四边形的费马点很简单,如果是凸四边形的话费马点是对角线交点,如果是凹四边形费马点是凹点。但题目给的四个点顺序是不确定的,所以要先求下凸包。代码://poj 3990//sep9#include #include #include using namespace std;原创 2015-03-31 19:08:44 · 800 阅读 · 0 评论 -
poj 3787 Convex Hull of Lattice Points 求凸包
题意:裸的凸包。分析:graham模板直接上。代码://poj 3787//sep9#include #include using namespace std;const int maxN=64;struct P{ int x,y; }pnt[maxN],cnt[maxN];int n;int cmp(P a,P b){ if(a.y!=b.y)原创 2015-03-31 22:45:31 · 1053 阅读 · 0 评论 -
poj 4048 Chinese Repeating Crossbow 线段规范相交的判断
题意:给n条线段和初始点,求初始点发出的射线最多能穿过多少条线段(有交点就算穿过)。分析:枚举线段端点,判断线段是否规范相交,需要严密的模板。代码://poj 4048//sep9#include using namespace std;typedef long long ll;const ll maxN=2000;const ll maxL=40028;str原创 2015-03-31 16:14:06 · 849 阅读 · 0 评论 -
poj 3129 How I Wonder What You Are! 点积求两向量夹角
水题,直接贴代码。//poj 3129//sep9#include #include using namespace std;const double eps=0.00000001;struct P{ double x,y,z;}p[512],tel[64];double a[64];int main(){ int i,j,cnt,n,m; while(scanf("原创 2015-03-19 23:09:48 · 867 阅读 · 0 评论 -
poj 2546 Circular Area 两圆面积交
题意:给两个圆,求它们的面积交。分析:海伦公式,余弦定理等可解。代码://poj 2546//sep9#include #include using namespace std;const double pi=acos(-1.0);int main(){ double x1,y1,r1,x2,y2,r2; scanf("%lf%lf%lf%lf%lf%lf"原创 2015-01-23 09:51:23 · 890 阅读 · 0 评论 -
poj 1927 计算几何
题意:给三角形的三点坐标个一段长为L的绳,求绳子在三角形内最多能围多大面积。分析:难点是绳长大于三角形内接圆半径又小于三角形周长的情况,这种情况绳子在三角形内形成三段直线和三段弧,其中三段弧组成一个小圆(有从物理方面的证明)。求出比例后即可算面积。代码://poj 1927//sep9#include #include using namespace std;cons原创 2014-12-01 23:33:26 · 649 阅读 · 0 评论 -
poj 3512 Incidental Points 计算几何
题意:给n个点,判断其中最多有多少个点gon原创 2014-11-22 13:28:47 · 1053 阅读 · 0 评论 -
poj 2460 Brownie Points I 坐标判断
题意:给n个点,判断他们相对于第n/2+1个点的位置关系。分析:水题,太水。代码://poj 2460 //sepNINE#include using namespace std;const int maxN=200024;int x[maxN],y[maxN];int main(){ int n; while(scanf("%d",&n)==1&&n){原创 2014-11-26 19:48:18 · 662 阅读 · 0 评论 -
poj 1569 Myacm Triangles 判断点在三角形内+求三角形面积
题意:给ping原创 2014-11-17 00:12:20 · 955 阅读 · 0 评论 -
poj 1254 Hansel and Grethel 直线求交
题意:通过点和方向给出两条直线,求他们的交点。分析:裸的直线求交,向量做法可避免特殊情况的的讨论。代码://poj 1254//sep9#include #include using namespace std;const double pi=acos(-1.0);struct P{ double x,y;}a,b,c,d;double det(doub原创 2015-10-09 00:27:47 · 741 阅读 · 0 评论