HDU 2289(二分法 圆台体积)
题意:
给定一个圆台的上底半径,下底半径和高,给出一定体积的水,求这些水在圆台内的体积。
简单的二分法逼近求高,过程中因为忘记了怎么求小圆台的上底半径而超时了几次。
TLE代码:
#include < cstdio >
#include < math.h >
using namespace std ;
double h = 0 , h1, r1, r2, r3, r ;
void f1(){
h1 /= 2 ;
h += h1 ;
r3 = r ;
r = (r + r2) / 2 ;
}
void f2(){
h1 /= 2 ;
h -= h1 ;
r = (r + r3) / 2 ;
}
int main(){
double v1, v2 ;
int m ;
double const PI = acos( double ( - 1 )) ;
cin >> m ;
while (m -- ){
cin >> r1 >> r2 >> h1 >> v2 ;
r = r1 ;
while ( true ){
v1 = PI * (r1 * r1 + r * r + r1 * r) * h / 3 ;
if (fabs(v1 - v2) < 0.00000001 ){
printf( " %.6f " , h) ;
break ;
}
else if (v1 < v2) f1() ;
else f2() ;
}
}
return 0 ;
}
AC代码:
#include < cstdio >
#include < math.h >
using namespace std ;
double h, h1, r1, r2, r, v, v1 ;
int main(){
int m ;
double const PI = acos( double ( - 1 )) ;
cin >> m ;
while (m -- ){
cin >> r1 >> r >> h1 >> v ;
double L = 0 , H = h1, M ;
while (H - L > 0.0000001 ){
M = (L + H) / 2 ;
r2 = M / h1 * (r - r1) + r1 ; //根据比例关系求小圆台的上底半径
v1 = PI * (r1 * r1 + r2 * r2 + r1 * r2) * M / 3 ;
if (v1 > v) H = M ;
if (v1 < v) L = M ;
}
printf( " %.6lf\n " , M) ;
}
return 0 ;
}
转载于:https://www.cnblogs.com/xiaolongchase/archive/2011/08/25/2152841.html
HDU 2289(二分法 圆台体积)相关推荐
- HDU 2289 几何+圆台
题意;给定一个圆台杯子的R,r,H和里面水的体积V 求h 二分................. 因为解不出来h............ View Code 1 /* 2 几何 3 圆台体积 4 V= ...
- OJ实验5-8 使用函数求圆台体积OJ
本题要求实现函数求圆台体积,定义并调用函数volume_tc(r_lower, r_upper, h)计算下底半径为r_lower.上底半径为r_upper.高度为h的圆台的体积,函数类型是doubl ...
- 实验5-8 使用函数求圆台体积 (10 分)
实验5-8 使用函数求圆台体积 (10 分) 本题要求实现函数求圆台体积,定义并调用函数volume_tc(r_lower, r_upper, h)计算下底半径为r_lower.上底半径为r_uppe ...
- HDU 2289 Cup(二分+圆台体积)
Problem Description The WHU ACM Team has a big cup, with which every member drinks water. Now, we kn ...
- Hdu 3255 Farming(长方形体积并)
传送门:Hdu 3255 Farming 题意:有N块农田,每块农田中种一种作物,每种作物都有一个价格,当在同一区域内种植了两种不同的作物时,作物价格大的生存下来,作物价格小的死亡.求最后的所有作物的 ...
- HDU2289_Cup_二分求圆台体积
题目大意: 一个圆台型的杯子,告诉你杯子的水的体积,要求水的高度. 解题思路: 将水的高度作为x,然后化简出f(x)方程,二分求x,至于圆台的体积公式:v = pi ...
- HDU 2289 Cup
题解:如果知道水面的高度,则直接可以算出水的体积,我们知道水的高度必然在0到最大高度之间,于是在这个区间内进行二分检索即可: #include <cstdio> #include < ...
- HDU 2002 计算球体积
计算球体积 Problem Description 根据输入的半径值,计算球的体积. Input 输入数据有多组,每组占一行,每行包括一个实数,表示球的半径. Output 输出对应的球的体积,对于每 ...
- 用C语言编程函数求圆台体积,第六篇 AutoCAD二次开发技术.pdf
第六章 ObjectARX 开发技术 1. AutoCAD二次开发概述 7. MFC对话框 2. ObjectARX简介 8. 搜索图形数据库及获取实体 3. 常用实体类和几何类 数据 4. 创建实体 ...
最新文章
- 关于spring aop Advisor排序问题
- Python使用tsne进行高维数据可视化实战:二维可视化、三维可视化
- table1函数----一维查表
- servlet指定时间到现在过了多久_就喝一瓶啤酒,多久能开车?交警:过了这个时间,100%没问题...
- Codeforces Round #281 (Div. 2) C. Vasya and Basketball 二分
- Python3爬虫知识点总结
- 【内有网易黑猪肉券福利】网易MCTalk首秀——在线教育是一场马拉松
- FastDFS分布式文件系统工作原理
- Filezilla 服务器发回了不可路由的地址。使用服务器地址代替
- 转载:如果你到了20岁,还没到 25岁 作者:李开复
- 38个免费匿名临时邮箱服务
- Gradle教程--基础篇
- 五子棋AI第二篇 AB剪枝和启发搜索(Java)
- 玩转windbg软件调试视频教程发布-windbg入门教程
- STM32F407VG晶振与主频配置
- 12.14黄金白银实时行情分析,黄金原油解套操作策略
- 【单片机笔记】基于STM32的8通道的开源无线遥控器手柄
- 1031 查验身份证 PTA
- 白鹭小游戏-成语挑战-资源放置
- mysql如何收费,mysql收费吗
热门文章
- SpringBoot 执行测试类取消控台台日志输出,配置只显示测试记录
- oracle 回退到某个时间,oracle 闪回技术
- STLink V2烧录SWIM和SWD接口接线图
- 728-MySQL索引篇
- 什么是技术合伙人-为什么需要技术合伙人
- 圣火中原之历史回顾, 曾经的“吉鸿昌”
- 【软件周刊第 23 期】Win10 开发全家桶已集齐:.NET Framework 4.7 和 VS 2017 Update 发布...
- scrapy框架爬取建设行业数据实例(思路整理)
- mysql索引工作原理btree_MySQL:索引工作原理
- Linux学习笔记-Vim编辑器与Shell命令脚本