BSG白山极客挑战赛 - C B君的圆锥
来源:互联网 发布:长春软件开发培训 编辑:程序博客网 时间:2024/04/27 23:07
一行一个整数,表示表面积S。(1 <= S <= 10^9)
一行一个实数,表示体积。
8
1.504506
----------------------------------------------------------------------------------------------------------------------------------
思路转自:http://blog.csdn.net/bmamb/article/details/51468740
思路 :
一道高中的计算几何,运用高中数学不等式可以直接计算出一个关于s的方程,求解即可。
求解过程如下:设表面积为s,体积为v,底面圆半径为r,圆锥的母线为L。pi 为 π。
可以知道s = pi * r * r(底面积) + pi * r * L(扇形面积); -->可以求出L关于r的方程 :L = s / (pi * r) - r;
然后v = pi * r * r * sqrt(L * L - r * r)/ 3;然后把上述L带入可以得到
v = r * sqrt( s * s - 2 * pi * r * r * s) / 3;
然后开始化简最后得到的那个v方程,用不等式 (x + y) / 2 >= sqrt( x * y); 上述v方程把r带入的话得到下方程
v = sqrt(r * r *(s * s - 2 * pi * r * r * s));
现在看那个根号里面的式子,最好写下来,这样看着真丑~~~~~ 不正好是x * y的形式么把括号里面的东西看成y的话,
然后外面有个r * r 如果配方成 2 * pi * r * r * s 那么(x + y) / 2不就正好可以消去s也是最大值了 配一个sqrt(2 * pi * s);然后化简
化简得: v = s * sqrt(pi * s *2 )/ (12 * pi) (就这样啊,坑啊!~ !~!~!)
---------------------------------------------------------------------------------------------------------------------------------
个人的一些解法总结:
以下的 r 都表示 为 底面圆的 半径:
以上是的思路是转自他人的博客的,该推过程确实是很头疼,不过这道题还有其他解法,将推到出来的式子中的 r ^ 2 当做 x ,那么就会得到 一元二次 方程 ,然后解一元二次方程就行了,还有一种方法是 对 r 从 0 到 最大值用 三分法不断缩小,这样也是可以求解出来的。这两种方法就留给大家自己去尝试。我就不写题解了。
在我看来,前两种都可以认为是数学方法,第三种是 计算机方法(⊙o⊙), 不过数学也是很重要的。
加上几个不等式变换的公式
附上代码:
#include <iostream>#include <cstring>#include <cstdio>#include <string>#include <algorithm>#include <vector>#include <cmath>#include <map>#define LL long long#define MAX_N 50000#define PI 3.1415926using namespace std;int main(){double n;while(cin >> n){printf("%lf\n",n * sqrt(n * PI / 2) / (6 * PI));}return 0;}
- BSG白山极客挑战赛 - C B君的圆锥
- BSG白山极客挑战赛 B君的圆锥
- BSG白山极客挑战赛-B君的圆锥(三分+数学)
- BSG白山极客挑战赛 -- B君的圆锥 (三分法求最值)
- 【三分法/数学公式】B君的圆锥【51nod】【BSG白山极客挑战赛】
- BSG白山极客挑战赛——B君的圆锥(计算几何)
- BSG白山极客挑战赛 B君的圆锥(数学)
- BSG白山极客挑战赛
- BSG白山极客挑战赛
- BSG白山极客挑战赛 数数字
- BSG白山极客挑战赛-AVL树
- BSG白山极客挑战赛题解(B题(dp),E题(二分+树状数组))
- BSG白山极客挑战赛-A-数数字
- BSG白山极客挑战赛-数数字(模拟)
- BSG白山极客挑战赛 -- 数数字 (找规律)
- BSG白山极客挑战赛 A-数数字 (模拟)
- BSG白山极客挑战赛题解 E 【二分+树状数组】
- BSG白山极客挑战赛A-数数字
- hdoj-1052-Tian Ji -- The Horse Racing
- CSS自适应布局总结
- 概率图模型
- android studio 与eclipse创建命名空间时候的区别
- C#中组件与控件的主要区别是什么
- BSG白山极客挑战赛 - C B君的圆锥
- 人类意识永存
- Android Studio JNI/NDK 编程 Windows 下环境搭建 demo 开发
- android studio小日常(持续更新)
- mtk平台如何屏蔽modem,蓝牙以及sd卡
- TOMCAT的目录结构 1++ Tomact的一些小配置2++Java Web开发: Tomcat中部署项目的三种方法
- 第十三周项目一 阅读程序请写出这些程序的运行结果(1 虚函数)
- 自定义 Windows RE 体验
- BSG白山极客挑战赛