ZOJ3550 Big Keng(三分)
题意:给定一个立体的图形,上面是圆柱,下面是圆台,圆柱的底面半径和圆台的上半径相等,然后体积的V时,问这个图形的表面积最小可以是多少。(不算上表面)。一开始拿到题以为可以YY出一个结果,就认为它是圆锥,赛后才知道原来要三分三分再三分。 就是对上下体积三分,对上半径和下半径三分。至于为什么是凸的貌似也不怎么好想,但是我后来确实发现单纯的圆锥肯定取不到最大值,这题就当作是学习三分的技巧啦- -0
#pragma warning(disable:4996)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#include<cmath>
#define ll long long
#define eps 1e-5
using namespace std; double r1, r2, V;
double v1, v2;
double pi = acos(-1.0); int dcmp(double x)
{
return (x > eps) - (x < -eps);
} double cal(double x)
{
r2 = x;
double H = v1 / (pi*r1*r1);
double h = 3 * v2 / (pi*r1*r1 + pi*r2*r2 + pi*r1*r2);
double ans = 0;
double mother = sqrt((r2 - r1)*(r2 - r1) + h*h);
ans = pi*(r1 + r2)*mother + 2 * pi*r1*H + pi*r2*r2;
return ans;
} double lr(double x)
{
v1 = x; v2 = V - x;
double l = 0, r = r1;
while (dcmp(r - l)>0)
{
double m1 = l + (r - l) / 3;
double m2 = l + 2 * (r - l) / 3;
double x1 = cal(m1);
double x2 = cal(m2);
if (x1 < x2) r = m2;
else l = m1;
}
return cal(l);
} double vol(double x)
{
r1 = x;
double l = 0, r = V;
while (dcmp(r-l)>0)
{
double m1 = l + (r - l) / 3;
double m2 = l + 2 * (r - l) / 3;
double x1 = lr(m1),x2 = lr(m2);
if (x1 < x2) r = m2;
else l = m1;
}
return lr(l);
} double solve()
{
double l = 0, r = 10*V;
while (dcmp(r - l)>0){
double m1 = l + (r - l) / 3;
double m2 = l + 2 * (r - l) / 3;
double x1 = vol(m1), x2 = vol(m2);
if (x1 < x2) r = m2;
else l = m1;
}
return vol(l);
} int main()
{
while (cin >> V)
{
double ans = solve();
printf("%.6lf\n", ans);
}
return 0;
}
ZOJ3550 Big Keng(三分)的更多相关文章
- hdu3714 三分找最值
Error Curves Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...
- BZOJ 1857 传送带 (三分套三分)
在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P,在CD上的移动速度为Q,在平面上的移动速度R.现在lxhgww想从 ...
- hdu 4717(三分求极值)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 思路:三分时间求极小值. #include <iostream> #include ...
- HDU2438 数学+三分
Turn the corner Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...
- 三分之一的程序猿之社交类app踩过的那些坑
三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们 ...
- 基于jPlayer的三分屏制作
三分屏,这里的三分屏只是在一个播放器里同时播放三个视频,但是要求只有一个控制面板同时控制它们,要求它们共享一个时间轨道.这次只是简单的模拟了一下功能,并没有深入的研究. 首先,需要下载jPlayer, ...
- 【BZOJ-1857】传送带 三分套三分
1857: [Scoi2010]传送带 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 1077 Solved: 575[Submit][Status][ ...
- ACM : HDU 2899 Strange fuction 解题报告 -二分、三分
Strange fuction Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tot ...
- bzoj1857: [Scoi2010]传送带--三分套三分
三分套三分模板 貌似只要是单峰函数就可以用三分求解 #include<stdio.h> #include<string.h> #include<algorithm> ...
随机推荐
- psql: 致命错误: 用户 "postgres" Ident 认证失败
RedHat: 问题: psql -U postgres 时出现:psql: 致命错误: 用户 "postgres" Ident 认证失败 解决: 修改 /var/lib/pgs ...
- Python学习教程(learning Python)--1.4 Python数据处理基础
本节主要讨论数据操作及运算符等基础知识,熟悉C语言相关知识的读者请跳过此节. 在高级语言编程过程中,有了数据以后通常要对数据进行相应的数据处理,加.减.乘.除等基本运算,不难理解. 在Python里 ...
- C 简单处理excel 转成 json
引言 工作中常需要处理excel转json问题. 希望这篇博文能简单描述这个问题.并提供一种解决思路.提升感悟. 今天我们处理的事就是为了把 xlsm => json. 一种方式是. 去 goo ...
- 算法系列3《SHA》
SHA是一种数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用.该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段(通常更小 ...
- 菜鸟学习Hibernate——多对多关系映射
Hibernate中的关系映射,最常见的关系映射之一就是多对多关系映射例如用户与角色的关系,一个用户对应多个角色,一个角色对应多个用户.如图: Hibernate中如何来映射这两个的关系呢? 下面就为 ...
- iOS学习之Object-C语言集合
一.数组类 1.C语言数组的特点:数组是一个有序的集合,用来存储相同数据类型的元素,通过下标访问数组中的元素,下标从0开始. 2.OC中的数组只能存储对象类型(必须是NSObjec ...
- sharepoint 2010 切换域
前提: 现在已经有一个sharepoint 2010的环境,当前域为contosoA.com,有个需求需要将这个域切换到域contosoB.com.下面是成功操作的步骤. 1.数据最重要 备份所有数据 ...
- Android实现AppWidget、Broadcast动态注册
Android实现AppWidget.Broadcast动态注册 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 主界面可以编辑广播的信息,点 ...
- Java Day 08
数组工具对象建立 多个.java文件先编译谁 数组工具类中静态的使用 构造函数私有化 数组工具类--文档注释 设计模式 -- 单例设计模式 保证一个类在内存中的对象唯一性 1.不允许其他程序使用new ...
- ionic:Build mobile apps faster with the web technologies you know and love
http://ionicframework.com/getting-started/ 5 Ionic Framework App Development Tips and Tricks http:// ...