2013年6月18日

UVa11524

摘要: 纯几何计算题对于上图,可以转化为下图~有了这样比例关系,可根据余弦定理,求出∠A的度数再根据上图,可把AP求出,AP就是这个比例系数,所以,三角形三边长度就求出来了最后:SΔABC=(AB+BC+BC)*r/2 阅读全文

posted @ 2013-06-18 12:52 Ac_coral 阅读(147) 评论(0) 推荐(0) 编辑

2013年6月17日

20130617

摘要: 心理黑暗的人总以为别人也是一样,心灵晶亮的人,把人都往好处想,认为别人也是一样的。所以同样一个人,人没变,是那个看人的心在变! 阅读全文

posted @ 2013-06-17 19:37 Ac_coral 阅读(113) 评论(0) 推荐(0) 编辑

UVa10674

摘要: wa好几次。讨论版所有数据都没问题- -最后发现是用于排序而重载的<运算符函数精度不够,导致误差bool operator < (const Point& a, const Point& b) { //return a.x < b.x || (a.x == b.x && a.y < b.y); return dcmp(a.x-b.x) < 0 || (dcmp(a.x-b.x) == 0 && dcmp(a.y-b.y) < 0);}对于题目中要求的排序规则,我是用:vect... 阅读全文

posted @ 2013-06-17 15:20 Ac_coral 阅读(140) 评论(0) 推荐(0) 编辑

2013年6月16日

20130616

摘要: 挤不进的世界,不要硬挤,难为了别人,作贱了自己;跨不过的门坎,不要硬跨,跨过了是门,不过就是坎;做不来的事情,不要硬做,换种思路,也许会事半功倍;拿不来的东西,不要硬拿,即使暂时得到,终究还会失去。 阅读全文

posted @ 2013-06-16 21:57 Ac_coral 阅读(135) 评论(0) 推荐(0) 编辑

UVa11800

摘要: 题目中表述:no three of them are collinear没有三点共线,也就不会有两点重合。如何判断四个顶点的位置,是这题比较重要的一个点。部分代码: if ( SegmentProperIntersection(A, B, C, D) ) v[0] = A, v[1] = B, v[2] = C, v[3] = D, flag = 1; else ... 阅读全文

posted @ 2013-06-16 20:17 Ac_coral 阅读(248) 评论(0) 推荐(0) 编辑

UVa1342

摘要: 欧拉定理,平面图的顶点数、边数、面数分别为V,E和F,则V+F-E=2。在保证 线段规范正交 的情况下,求得线段交点,交点可能重复,应该再去除重复的点,求出V。sort()函数是要使用<运算符的unique()函数是要使用==运算符的根据所求的V,利用Onsegment()函数,求E。Onsegment()函数作用是:判断一个点是否在一条线段上,不包含端点!!所以,e的初始值应该为n,而不是0bool OnSegment(const Point& p, const Point& a1, const Point& a2) { return dcmp(Cross(a1 阅读全文

posted @ 2013-06-16 10:53 Ac_coral 阅读(141) 评论(0) 推荐(0) 编辑

2013年6月15日

励志精彩语录

摘要: 什么最重要:1.思路清晰远比卖力苦干重要。2.心态正确远比现实表现重要。3.选对方向远比努力做事重要。4.做对的事情远比把事情做对重要。5.拥有远见比拥有资产重要。6.拥有能力比拥有知识重要。7.拥有人才比拥有机器重要。8.拥有健康比拥有金钱重要。 阅读全文

posted @ 2013-06-15 23:50 Ac_coral 阅读(85) 评论(0) 推荐(0) 编辑

【转】计算几何中的精度问题

摘要: 计算几何头疼的地方一般在于代码量大和精度问题,代码量问题只要平时注意积累模板一般就不成问题了。精度问题则不好说,有时候一个精度问题就可能成为一道题的瓶颈,简直“画龙点睛”。这些年的题目基本是朝着越来越不卡精度的方向发展了,但是也不乏一些%^&%题#$%$^,另外有些常识不管题目卡不卡,都是应该知道的。今天我就开膛回顾下见过且还有印象的精度问题,由于本人见识和记忆均有限,望各位大神瞄过后不吝补充。另外,为了弥补我匮乏的文思,我可能乱扯些不太相关或者尽人皆知的东西凑数。那么,现在开始。计算几何的精度问题说到底其实是浮点数的精度问题,但我觉得“计算几何”比“浮点数”更能吸引眼球,所以选了这个 阅读全文

posted @ 2013-06-15 22:02 Ac_coral 阅读(155) 评论(0) 推荐(0) 编辑

UVa11437

摘要: 求D点坐标: D在BC上,直线BC的参数方程为:B+(C-B)*t, 这里D是三等分点,所以D坐标为B+(C-B)/3 。同理求E点坐标。然后调用函数求出线段AD和BE的交点P的坐标同理,求得Q,R的坐标。ΔPQR面积既可有各种方法能够求出来这种使用直线参数方程求E点坐标的方法,详见白书P257另:网友的高等数学求法另:推导公式法,所求面积为ΔABC的1/7本题除了学会 理解+应用 书中的参数方程外,另外一个值得学习的地方就是如何处理:rounded to the nearest integer.printf ( "%.0lf\n", ans );部分代码如下:Point 阅读全文

posted @ 2013-06-15 19:57 Ac_coral 阅读(141) 评论(0) 推荐(0) 编辑

UVa11178

摘要: 例题,入门题,没有算法注意Rotate()函数,表示向量A旋转rad弧度,其中第二个参数为正时,代表逆时针旋转的角;为负时,代表顺时针旋转的角Vector Rotate(const Vector& A, double rad) { return Vector(A.x*cos(rad)-A.y*sin(rad), A.x*sin(rad)+A.y*cos(rad));}关键代码:Point solve ( Point A, Point B, Point C ) { Vector v1 = C-B; double a1 = Angle(A-B, v1); v1 = Rotate... 阅读全文

posted @ 2013-06-15 18:57 Ac_coral 阅读(143) 评论(1) 推荐(0) 编辑

导航