【三分法/数学公式】B君的圆锥【51nod】【BSG白山极客挑战赛】
来源:互联网 发布:加强网络文化建设 编辑:程序博客网 时间:2024/05/17 06:40
题目链接:http://www.51nod.com/contest/problem.html#!problemId=1629
B君要用一个表面积为S的圆锥将白山云包起来。
B君希望包住的白山云体积尽量大,B君想知道体积最大可以是多少。
注意圆锥的表面积包括底面和侧面。
Input
一行一个整数,表示表面积S。(1 <= S <= 10^9)
Output
一行一个实数,表示体积。
Input示例
8
Output示例
1.504506
纯数学公式代码:
#include<iostream>#include<cstdio>#include<cmath>#define PI 3.1415926535898using namespace std;int main(){ int s; while(~scanf("%d",&s)){ double ans=s*sqrt((2.0*s)/PI)/12.0; printf("%lf\n",ans); } return 0;}
三分法代码:
// 这道题目真正考的应该是三分法#include<iostream>#include<cstdio>#include<cmath>#define PI 3.1415926535898#define eps 1e-7using namespace std;int s;double cal(double r){ double l=s*1.0/(PI*r)-r; // 弧长; if(l<=r) return -1; // 斜边大于直角边; double h=sqrt(l*l-r*r); // 高; double v=PI*r*r*h/3.0; return v;}double solve(){ double l=0,r=s; double lmid,rmid; double lmid_v,rmid_v; while(l+eps<r){ lmid=(l+r)/2.0; rmid=(lmid+r)/2.0; lmid_v=cal(lmid); rmid_v=cal(rmid); if(lmid_v>=rmid_v) r=rmid; // 这里得是>=,没懂 else l=lmid; } return cal(l);}int main(){ while(~scanf("%d",&s)){ printf("%lf\n",solve()); } return 0;}
0 0
- 【三分法/数学公式】B君的圆锥【51nod】【BSG白山极客挑战赛】
- BSG白山极客挑战赛 -- B君的圆锥 (三分法求最值)
- BSG白山极客挑战赛 - C B君的圆锥
- BSG白山极客挑战赛 B君的圆锥
- BSG白山极客挑战赛-B君的圆锥(三分+数学)
- BSG白山极客挑战赛——B君的圆锥(计算几何)
- BSG白山极客挑战赛 B君的圆锥(数学)
- 51nod BSG白山极客挑战赛 AVL树的种类
- BSG白山极客挑战赛
- BSG白山极客挑战赛
- BSG白山极客挑战赛 数数字
- BSG白山极客挑战赛-AVL树
- BSG白山极客挑战赛题解(B题(dp),E题(二分+树状数组))
- BSG白山极客挑战赛-A-数数字
- BSG白山极客挑战赛-数数字(模拟)
- BSG白山极客挑战赛 -- 数数字 (找规律)
- BSG白山极客挑战赛 A-数数字 (模拟)
- BSG白山极客挑战赛题解 E 【二分+树状数组】
- 辛星浅析yaml
- strtok和sscanf结合输入
- 山寨Besiege(四)操控轴
- 蓝桥杯国赛前一周深夜思索
- Android自定义View(二、深入解析自定义属性)
- 【三分法/数学公式】B君的圆锥【51nod】【BSG白山极客挑战赛】
- 大数据和Android
- LeetCode 45. Jump Game II(跳格子)
- 统计学 入门基础概念篇 - Descriptive Statistics: Charts and Graphs(个人笔记)
- LeetCode 46. Permutations(排列)
- LeetCode 47. Permutations II(排列)
- 山寨Besiege(五)车轮
- LeetCode 48. Rotate Image(旋转)
- view.scrollTo()无效的原因