
高精度
better_space
这个作者很懒,什么都没留下…
展开
-
【杭电1969】Pie
这题也是卡精度的二分题目,我只是一个π的定义方式不同就给wa,记得以后π的定义用const double PI = acos(-1.0),就是cos函数下求π,括号内要用浮点数。 整体思路和我cable master那篇文章一样的。链接: http://blog.youkuaiyun.com/better_space/article/details/52039880#include<stdio.h>#原创 2016-07-27 09:38:00 · 534 阅读 · 0 评论 -
【杭电1551】Cable master
题意:把4段网线分成11段每段至多多长。 现在总结一下二分的思想和步骤吧: 1.找到二分标准,就是对什么进行二分 2.找到两个临界点 3.判断mid时,是否满足条件,然后视情况更新l和r的值 4.我认为最重要的是while()括号内的条件选择,特别是对这种卡精度的题。#include<stdio.h>#include<math.h>const int MAXN = 1*1e4+10;原创 2016-07-26 21:36:48 · 396 阅读 · 0 评论 -
【杭电2199】Can you solve this equation?
这题卡精度,精确到小数点后第四位,所以while()条件用<1e-5作为限制,不能受整数二分方法的限制,重要的是二分思想,本题只要让r或l直接等于mid即可,因为浮点型除以2后不存在约数是个确定的值,不符合while()条件就跳出输出mid,简洁明了。 还有其他的二分方法,不过这个理解起来最为简单,我也是借鉴别人的代码综合而来的,却是是受益匪浅。#include<stdio.h>#include原创 2016-07-26 20:32:38 · 291 阅读 · 0 评论 -
UVA 10200 Prime Time (打表)(精度太坑了)
UVA 10200 Prime Time (打表)Prime TimeEuler is a well-known matematician, and, among many other things, he discovered that the formula n 2 + n + 41 produces a prime for 0 ≤ n < 40. For n = 40,原创 2016-08-13 21:20:28 · 865 阅读 · 0 评论 -
【貌似是改编题】Expanding Rods
对这类输出形式的题目只要满足他的精度要求就行了,精度以后不同不必考虑。 只要找准其中的几何关系对h进行二分法求值,使其无限接近满足精度要求的真实值。 找准几何关系: 1.R=h+sqrt(R*R-l/2*l/2);求出R(直接用程序语言表示了哈) 2.半圆心角θ=arcsin(l/(2*R)) 3.l*=2θ·π·R/π=2θ·R 与这个题类似: http://原创 2016-07-27 15:24:05 · 238 阅读 · 0 评论 -
【Uva10566】Crossed Ladders
列出一个包含x,y,c的关系式,设宽为w,底边垂线左边为a,根据相似三角形关系: 1.a/w=c/sqrt(y*y-w*w); 2.(w-a)/w=c/sqrt(y*y-w*w); 两式合并消去a得: c/sqrt(x*x-w*w)+c/sqrt(y*y-w*w)=1; 能推出c与w有同增同减关系,所以当带入mid小于1时,实际w大于mid;反之小于mid,以此二分,再注意精度即可(误差小原创 2016-07-27 10:59:34 · 349 阅读 · 0 评论