一种ws的计算几何方法
http://poj.org/problem?id=3737
题意:给出圆锥的表面积(包含底面的圆),求圆锥的最大体积,并输出高与半径
常规思路:
推公式:
S=pi*r*l + pi*r*r
l=sqrt(r*r+h*h),
联立得, r*2= s*s/(pi*pi*h*h+2*pi*s)
V=(1/3)*pi*r*r*h,
代入r*2,求导,令一阶导数为0,
得出结果h=sqrt(2*s/pi)
r=sqrt(s*s/(pi*pi*h*h+2*pi*s))
把h代到r里面,可以得到r=sqrt(s/pi/4)
v=(1.0/3.0)*(s*s)*h/(pi*h*h+2*s)
其他思路:
直接二分f'(x)=0
left=0.0right=sqrt(s/2pi)...
ws思路:
先用excel暴力(三分搜索)出样例的一个比较精确的解:
v=10.9254843059207
h=4.37019320246246
s=1.5450969
设输入的数是样例的d*d倍(也就是把样例等比例放大d倍)
v'=v*d*d*d
h'=h*d
s'=s*d
比赛的时候忘记求导公式原来可以用这种ws的方法^_^
ps:可能因为这题数据范围小(1≤S≤10000)而且输出精读要求低(0.01)吧
注意:
1.pi用 #define PI acos(double(-1)) 比较稳妥,有人pi到了15位ac
2.printf 把%.2f改成%.2lf可能就过了
3.我用%.2lf g++ wa 然而 c++ ac
用%.2f g++ c++都ac了
努力决定下限,天赋成就上限
晚安,2010 - 橙衣少年的2010纪念册
2011计划
速度水一下刚才的srm492
今天比赛10:00开始,昨晚打了近三个小时实况,把cf翘掉了。
上午数据结构课,上了两节,翘了第三节屁颠屁颠地跑来做题。
div2就是好啊,题目都有思路。
第一题开始少看一个重要条件,浪费不少时间后过了,才200分
第二题想贪心,没思路,然后直接暴搞,查了好久都TLE,比赛后才发现我的goto直接跑到循环外,然后循环重新初始化了。。。
第三题貌似是MST,可惜我不会输入搞不定,遗憾啊!
cha人是我用白衣神的一一个思路变了一组简单的测试数据cha房间里两个1000pt,都失败了,损失惨重,后来有一个被系统干掉了,哎!
吃饭去了:(