![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
几何
文章平均质量分 65
clevermike
这个作者很懒,什么都没留下…
展开
-
UVa 10112 - Myacm Triangles
题意:给你4到15个点,求能构成的最大的不覆盖其他点的三角形这里有一个判断点是否在三角形内的方法:用这个点分别与三角形任意两端点构成三角形,得到三个三角形,如果这三个三角形面积之和与原三角形面积相等,则点在三角形内数据量极小,暴力枚举即可#include #include #include using namespace std;int a[50][5];doub原创 2012-08-24 10:13:49 · 813 阅读 · 0 评论 -
ZOJ 3716 - Ribbon Gymnastics
题意:给出4个点坐标,以4个点为圆心画四个圆,四个圆不能相交,求最大半径和一共4个点,最短的两条不共点的线段之和即为答案#include #include typedef struct point{ double x; double y; point(double x=0,double y=0):x(x),y(y) {}} point;double s[1原创 2013-08-19 19:41:50 · 868 阅读 · 0 评论 -
SGU 162 - Pyramids(四面体体积公式)
任意一个三棱锥或者说四面体,其棱为a,b,c,d,e,f,其中a与d,b与e,c与f互为对边,那么有三棱锥(四面体)的体积公式为原创 2013-07-28 15:23:27 · 2256 阅读 · 0 评论 -
SGU 151 - Construct a triangle
三角形中线定理:如果BC中点为M,则AB^2+AC^2=2*AM^2+2*BM^2注意:三角形中线小于两夹边之和的一半大于两夹边之差的一半#include #include typedef struct{ double x; double y;}point;int main(){ point A,B,C; double c,b,m,a;原创 2013-07-26 20:12:48 · 807 阅读 · 0 评论 -
HDU 4631 - Sad Love Story(最近点对)
题意:给出A、B、C,按照给出的公式推出每一个点,添加每一个点时,求出相应的最短距离,所有最短距离加和因为是随机点,不可能有边界数据,所以可以爆搞每次找(0,R-1)区间的最近点对(R为上一个最近点对里面编号最大的),然后加上R到N里面所有的距离(相乘即可)这题搞出来的。。。应该不是什么正规解法。。。跑了19015ms。。。还是太水了#include #include #i原创 2013-08-01 09:52:54 · 721 阅读 · 0 评论 -
URAL 1062 - Triathlon(半平面交)
这个题乍眼一看好像很简单,然后我就认为u、v、w只要有全部比另外一个人小的就不能win,否则就能win,但是这个思路只对了一半不能win的结论是正确的,但是win的结论不止排除这一个条件将这个人与其他人的条件列式如果都win的话,则满足 x/v+y/u+(k-x-y)/w(i的)#include #include #include using namespace std;c原创 2013-07-31 16:27:46 · 895 阅读 · 0 评论 -
UVa 10075 - Airlines(球面距离+Floyd)
这题要求的是球面的航线距离,不是直线距离,而是球面的弧线距离我先把球面坐标转换为三维坐标,然后计算出两点间距离,再用余弦定理求出扇形角度,从而求出弧线距离本题的结果要转换成int,否则会有误差#include #include #include const double pi=3.141592653589793;const double R=6378;typedef stru原创 2013-07-22 21:21:16 · 934 阅读 · 0 评论 -
UVa 11731 - Ex-circles
给出三角形ABC的三条边长a,b,c,求外接三角形DEF的面积及阴影部分的面积这题推了一个来小时,才观察到一个问题——把外切圆的圆心向对应的三条线引垂线,根据切线长定理可以判断出外切圆圆心为对应两个三角形外角角平分线的交点,这个规律推出来,后面的就很好做了#include #include const double pi=acos(-1.0);double area(原创 2013-07-22 10:34:40 · 1000 阅读 · 0 评论 -
UVa 10585 - Center of symmetry
给出若干个点的坐标,问是否存在一个点,这个点是所有点的中点我的思路:排序+二分查找(详见代码)#include #include #include using namespace std;typedef struct point{ double x; double y;} point;point a[10010];int cmp(point a,point原创 2013-07-18 21:48:01 · 734 阅读 · 0 评论 -
UVa 10439 - Temple of Dune
给出一个正多边形上的三个点的坐标,求至少是正几边形问题转化:三点可以确定一个圆,由此可求出外接圆的圆心,再根据圆上的三个点求出三个角度,由于题目中说明多边形的边数不会超过200,可直接枚举边数,然后判断即可注:判断时需要合理控制精度,太小了不够,太大了会出错#include #include #include using namespace std;const double原创 2013-07-18 17:47:30 · 853 阅读 · 0 评论 -
UVa 10522 - Height to Area
给出三角形三边上的三条高ha,hb,hc,求三角形的面积这个题一开始我就陷入错误的思路之中——把AB看成是圆的直径,则直角三角形的三个点都在圆上,还看出了相似,然后推了一阵,发现解决不了,然后参考了网上大神的题解,豁然开朗,设三边为a,b,c,共有以下方程:0.5*a*ha=s; 0.5*b*hb=s; 0.5*c*hc=s; l=0.5*(a+b+c); s=sqrt(l*(l-原创 2013-07-17 19:26:11 · 702 阅读 · 0 评论 -
HDU 4454 - Stealing a Cake(三分)
我比较快速的想到了三分,但是我是从0到2*pi区间进行三分,并且漏了一种点到边距离的情况,一直WA了好几次后来画了下图才发现,0到2*pi区间内是有两个极值的,每个半圆存在一个极值以下是代码#include #include #include #define pi acos(-1.0)using namespace std;typedef struct{ doub原创 2013-09-02 16:11:23 · 938 阅读 · 0 评论