之前用二分写三分的板子。。。现在正式写一个三分,但是也不难,就是把区间分为三段就行了。求二次函数的峰值,每次取大的区间就行了。

题干:

最近几天,人们总是设计出多功能的新东西。例如,您不仅可以使用手机给朋友打电话,还可以使用手机拍照或听MP3。另一个例子是手表和电视的结合。这些多功能项目总能改善人们的日常生活,深受用户青睐。

Umbrella公司最近为彩虹城的人们发明了一种新型伞“UmBasketella”,它的想法也来自于这种多功能 - 伞和日用品的组合。这种伞可以用作篮子,你可以放入你想要携带的东西。由于彩虹城经常下雨,这种创新用途是成功的,“UmBasketella”卖得很好。不幸的是,最初的“UmBasketella”没有自动音量控制技术,因此当用户试图在其中放入太多东西时很容易损坏。要解决这个问题,您需要设计一个具有最大音量的“UmBasketella”。假设“UmBasketella”是一个锥形容器,其表面区域(包括底部)是已知的,

输入

输入包含几个测试用例。Eash案例仅包含一个实数S,表示锥体的表面积。这是保证1≤ 小号 ≤。

产量

对于每个测试用例,输出应包含三行。
第一行应该有一个实数表示锥体的最大体积。
输出第二条线上锥体的高度和第三条线上锥体底部区域的半径。
所有实数都应该舍入到0.。 样本输入 三十
样本输出 10.93
4.37
1.55
资源

代码:

#include<iostream>
#include<cstdio>
#include<cmath>
#include<ctime>
#include<queue>
#include<algorithm>
#include<cstring>
using namespace std;
#define duke(i,a,n) for(int i = a;i <= n;i++)
#define lv(i,a,n) for(int i = a;i >= n;i--)
#define clean(a) memset(a,0,sizeof(a))
const int INF = << ;
typedef long long ll;
typedef double db;
template <class T>
void read(T &x)
{
char c;
bool op = ;
while(c = getchar(), c < '' || c > '')
if(c == '-') op = ;
x = c - '';
while(c = getchar(), c >= '' && c <= '')
x = x * + c - '';
if(op) x = -x;
}
template <class T>
void write(T x)
{
if(x < ) putchar('-'), x = -x;
if(x >= ) write(x / );
putchar('' + x % );
}
db s,pi = acos(-1.0);
inline db calc(const db &r)
{
db l = (s - r * r) / r;
db h = sqrt(l * l - r * r);
db v = pi * r * r * h / 3.0;
return v;
}
int main()
{
while(scanf("%lf",&s) != EOF)
{
s /= pi;
db lft = ,rgt = sqrt(s),m1,m2,r;
duke(t,,)
{
m1 = lft + (rgt - lft) / 3.0;
m2 = rgt - (rgt - lft) / 3.0;
if(calc(m1) <= calc(m2))
lft = m1,r = m2;
else
rgt = m2,r = m1;
}
db l = (s - r * r) / r;
db h = sqrt(l * l - r * r);
db v = pi * r * r * h / 3.0;
printf("%.2f\n%.2f\n%.2f\n",v,h,r);
}
return ;
}

poj3737 UmBasketella 真正的三分的更多相关文章

  1. POJ3737 UmBasketella

    嘟嘟嘟 一道三分入门题. 参考二分,三分就是每一次把区间分成三段,然后舍弃一段,不断缩小范围直到一个点. 一般用于求单峰函数的最值问题. 这道题发现V和r成一次函数的关系,因此三分r. 下面给出三分板 ...

  2. UmBasketella

    UmBasketella http://poj.org/problem?id=3737 Time Limit: 1000MS   Memory Limit: 65536K Total Submissi ...

  3. hdu3714 三分找最值

    Error Curves Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Tota ...

  4. BZOJ 1857 传送带 (三分套三分)

    在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxhgww想从 ...

  5. hdu 4717(三分求极值)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 思路:三分时间求极小值. #include <iostream> #include ...

  6. HDU2438 数学+三分

    Turn the corner Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)T ...

  7. 三分之一的程序猿之社交类app踩过的那些坑

    三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们 ...

  8. 基于jPlayer的三分屏制作

    三分屏,这里的三分屏只是在一个播放器里同时播放三个视频,但是要求只有一个控制面板同时控制它们,要求它们共享一个时间轨道.这次只是简单的模拟了一下功能,并没有深入的研究. 首先,需要下载jPlayer, ...

  9. 【BZOJ-1857】传送带 三分套三分

    1857: [Scoi2010]传送带 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 1077  Solved: 575[Submit][Status][ ...

随机推荐

  1. sql常用手法(二)

    drop,TRUNCATE和delete的区别 1.DROP删表,表结构将删了,当然数据也不存在了2.TRUNCATE和DELETE删数据,表结构还在3.DELETE可以带条件删除,TRUNCATE是 ...

  2. CodeFrist基础_迁移更新数据

    一丶自动迁移 第一次启用迁移:NeGet-->Enable-Migrations public DemoDbContext() : base("name=ConncodeFirst&q ...

  3. Android studio 开发一个用户登录界面

    Android studio 开发一个用户登录界面 activity_main.xml <?xml version="1.0" encoding="utf-8&qu ...

  4. LeetCode15——3Sum

    数组中找三个数和为0的结果集 1 // 解法一:先排序 然后固定一个值 然后用求两个数的和的方式 public static List<List<Integer>> three ...

  5. canvas练手项目(三)——Canvas中的Text文本

    Canvas中的Text文本也是一个知识点~,我们需要掌握一下几个基本的Text操作方法 首先是重要参数textAlign和textBaseline: textAlign left center ri ...

  6. JavaScript ES6 数组新方法 学习随笔

    JavaScript ES6 数组新方法 学习随笔 新建数组 var arr = [1, 2, 2, 3, 4] includes 方法 includes 查找数组有无该参数 有返回true var ...

  7. Error LNK2019: unresolved external symbol C++模板类声明与定义链接错误问题

    编译器在编译模板时,并不会生成代码,只有遇到实例化的时候才会生成代码.因此,当我们只引用模板声明文件的时候,在实例化的对象时候,模板的定义问文件是不可见的,于是出现链接错误.例如: //A.h #pr ...

  8. 常用的HTTP测试工具谷歌浏览器插件汇总

    网页的开发和测试时最常见的测试就是HTTP测试,作为曾经的测试人员在这方面还是略知一二的.其实做网页测试工作是非常繁琐的时期,有时候甚至是无聊重复的,如果没有网页测试工具的帮助的话,测试人员会越做越怀 ...

  9. eshing wind/tidal turbine using Turbogrid

    Table of Contents 1. meshing wind turbine using Turbogrid 1.1. ref 1 meshing wind turbine using Turb ...

  10. java 使用OpenOffice文件实现预览

    1.安装OpenOffice软件 安装教程:https://jingyan.baidu.com/article/c275f6ba12c07ce33d756732.html 2.安装完成后,创建项目,p ...