随笔分类 -  几何

摘要:#1231 : Border Length时间限制:1000ms单点时限:1000ms内存限制:256MB描述Garlic-Counting Chicken is a special species living around the Lake of Peking University.A Garl... 阅读全文
posted @ 2015-11-05 22:29 来自大山深处的菜鸟 阅读(253) 评论(0) 推荐(0)
摘要:题意:求在平面上 任意两点连线,原点到这个点的距离小于d的点对有多少个,n=200000;解: 以原点为圆心做一个半径为d的圆,我们知道圆内的点和园内以外的点的连线都是小于d的还有,圆内和园内的点联线也是小于d的,那么需要处理的是圆外和圆外的点。以每个圆外的点 向圆做切线 然后我们知道有绿色点区域是... 阅读全文
posted @ 2015-11-05 09:30 来自大山深处的菜鸟 阅读(254) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/firenet1/article/details/47041145#include #include #include #include #include #include using namespace std;const int maxn=500100;... 阅读全文
posted @ 2015-09-11 15:12 来自大山深处的菜鸟 阅读(184) 评论(0) 推荐(0)
摘要:题中给了 两个同心圆, 一个大圆一个小圆,然后再给了一个大圆一个小圆也是同心圆,求这两个圆环相交的面积,用两个大圆面积减去两倍大小圆面积交加上两个小圆面积交,就ok了这里算是坑明白了 使用acos的时候要保证不能让大于1或者小于-1的数进来,因此加一个判断,在现场的时候就是这里被坑死了#includ... 阅读全文
posted @ 2014-12-04 10:41 来自大山深处的菜鸟 阅读(189) 评论(0) 推荐(0)
摘要:uva1473 这题说的是 在空间中给了n个点 然后用体积最小的圆锥将这些点包含在内可以在表面上, 将这些点 映射到xoz平面上然后,然后枚举每个上凸包的边和每个点的极值进行判断求得最小的体积 我们会发现最小的体积 要不就紧贴一个点要不然就会贴住两个点#include #include #inclu... 阅读全文
posted @ 2014-08-25 15:07 来自大山深处的菜鸟 阅读(348) 评论(0) 推荐(0)
摘要:判断线段与直线的相交 这里有个地方需要注意的就是在 转换的时候容易报错 在叉积完后的判断符号的时候需要注意 这个地方会超出int 的范围2014-06-0320:14:04#include #include #include #include using namespace std;struct p... 阅读全文
posted @ 2014-06-03 20:15 来自大山深处的菜鸟 阅读(204) 评论(0) 推荐(0)
摘要:这题说的是 有n个点在 圆上等分这个圆,然后 然后计算其中任意三个点能组成的锐角三角形的个数首先这些点能组成的三角形的个数为 n*(n-1)*(n-2)/6 接下来计算不是锐角三角形的个数固定任意一点,设这点对应的点为直角或者钝角三角形,则该店对应的圆弧长度至少为(n + 1) / 2,对于某个长度... 阅读全文
posted @ 2014-05-03 11:15 来自大山深处的菜鸟 阅读(151) 评论(0) 推荐(0)
摘要:叉积的运用 ,不断的用叉积去判断 最小的拼图, 刚开始对点进行排序,每个人的排序规则不同做法可能不同,我是按照点的x轴进行x轴相同用y小的在前面,然后每个点按照最下的点开始进行查找 每次从一个点出发然后结束后无论找不找到都得 将出发的那条边删掉,ok然后就可以不断的去瓜分这张大的图,#include #include #include#include#include#include#includeusing namespace std;struct point{ double x,y; point(double a=0,double b=0) {x=a;y=b;}}node[... 阅读全文
posted @ 2013-12-19 19:45 来自大山深处的菜鸟 阅读(310) 评论(0) 推荐(0)
摘要:以POJ的2420为例来说明一下,我感觉这个应该算得上是二分吧.先进行点的变换,确定当前最优,在二分距离,这样应该就能得出答案了吧!#include #include#include#includeusing namespace std;struct point{ double x,y; point (double a=0,double b=0){x=a;y=b;}}p[105];double work1(point a,int n){ int i; double ans; ans=0; for(i=0;i0.1) { f... 阅读全文
posted @ 2013-12-01 10:45 来自大山深处的菜鸟 阅读(223) 评论(0) 推荐(0)
摘要:利用二分的方法来计算,应该是说利用分治的方法吧! 刚开始感觉时间会爆 后来发现嘎嘎居然没有 ,嗨自己算错了时间:#include #include#include#include#includeusing namespace std;struct point{ double x,y; point (double a=0,double b=0) { x=a;y=b; }};struct point p[100005];int a[100005];bool cmp1(point a,point b){ if(a.xb?b:a;}double find(... 阅读全文
posted @ 2013-11-29 18:18 来自大山深处的菜鸟 阅读(173) 评论(0) 推荐(0)