poj-2403-cup

题目描述

The WHU ACM Team has a big cup, with which every member drinks water. Now, we know the volume of the water in the cup, can you tell us it height?

The radius of the cup‘s top and bottom circle is known, the cup‘s height is also known.

输入

The input consists of several test cases. The first line of input contains an integer T, indicating the num of test cases. Each test case is on a single line, and it consists of four floating point numbers: r, R, H, V, representing the bottom radius, the top radius, the height and the volume of the hot water. Technical Specification

1. T <= 20.

2. 1 <= r, R, H <= 100; 0 <= V <= 1000,000,000.

3. r <= R.

4. r, R, H, V are separated by ONE whitespace.

5. There is NO empty line between two neighboring cases.

输出

For each test case, output the height of hot water on a single line. Please round it to six fractional digits.

样例输入

1100 100 100 3141562

样例输出

99.999024

提示

提说有两种方法 一种二分一种数学求法;

下吗是数学求法:

#include<stdio.h>
#include<math.h>
#define PI 3.14159265
int main()
{
int t;
double r,R,H,V,v0,h1;
double ans;
while(scanf("%d",&t)!=EOF)
{
while(t--)
{
scanf("%lf%lf%lf%lf",&r,&R,&H,&V);
if(r!=R)
{
                h1=(R-r)/(H*r)-H;                                             //补全的小圆锥A的高,用相似比算出来
                v0=(PI*r*r*h1)/3;                                             //小圆锥A的体积
               ans=(H+h1)-(H+h1)*pow((((PI*r*r*(H+h1)/3)-V)/(PI*r*r*(H+h1)/3)),1.0/3);     //热水倒入后的体积的高 可以用总的体积减去热血倒入后的体积形成的那个圆锥B与总的补起来后的大圆锥C用相似法比 得出小圆锥B的高   所求的高为大圆锥C高-小圆锥B的高
                
}
else
{
ans=V/(PI*(r*r));
}
if(ans>H) ans=H;
printf("%.6lf\n",ans);
}
}
return 0;
}

时间: 2024-11-05 12:31:28

poj-2403-cup的相关文章

poj 2403

http://poj.org/problem?id=2403 题意:就是给你m个单词,以及n段对话.每一个单词都有所对应的价值.求对话中的价值总和 题解:很简单,就是用单词和价值对应起来,然后再寻找就可以了. 我用的是STL里的map,不用Map的话,结构体也行.只是用Map比较方便而已. 1 #include <string.h> 2 #include <string> 3 #include <map> 4 #include <iostream> 5 #i

poj 3117 World Cup(简单数学题)

题目链接:http://poj.org/problem?id=3117 World Cup Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8634   Accepted: 4327 Description A World Cup of association football is being held with teams from around the world. The standing is based on

Poj 3117 World Cup

1.Link: http://poj.org/problem?id=3117 2.Content: World Cup Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8778   Accepted: 4406 Description A World Cup of association football is being held with teams from around the world. The standin

poj - 1953 - World Cup Noise(dp)

题意:n位长的01序列(0 < n < 45),但不能出现连续的两个1,问序列有多少种. 题目链接:http://poj.org/problem?id=1953 -->>设dp[i][j]表示前 i 位中第 i 位为 j 时的序列数,则状态转移方程为: dp[i][0] = dp[i - 1][0] + dp[i - 1][1]; dp[i][1] = dp[i - 1][0]; 因为对于相同的n,其结果是固定的,所以可以对一个n只计算一次,然后记住她.. #include <

poj 1953 world cup noise

题目大意:给出一个数n,求n位二进制中有多少个数不包含相邻的1. 思路:推出前3项后就可以发现满足斐波那契数列.先用数组记录下1~n位的结果,再通过输入的值访问相应下标的元素的值即可. #include<iostream> #include<stdio.h> #include<string.h> using namespace std; int bit[50]; void calc() { int i; bit[1]=2; bit[2]=3;//将特殊的两个值记录 fo

POJ 3224 Go for Lab Cup!(水题)

[题意简述]:扫描矩阵,哪一行的'3'多,谁就是胜者,可以取参赛. [分析]:题意里已经说了. //260K 0Ms #include<iostream> using namespace std; int main() { int matrix[100][100]; int a[100]; int n; cin>>n; for(int i = 1;i<=n;i++) for(int j = 1;j<=n;j++) cin>>matrix[i][j]; int

poj 动态规划DP - 1953 World Cup Noise

这一题其实就是斐波那契数列,但是我一开始用的是DP,不过应该思想差不多. 一数组dp[i][2],dp[i][0]代表前i个数里面最后一个数字为0的数量,dp[i][1]代表前i个数里面最后一个数字为1的数量,可知dp[i][1]+dp[i][0]就是前i个数能组成序列的数量. 这里因为不能2个1在一起,所以: dp[i][0] = dp[i-1][0]+dp[i-1][1] dp[i][1] = dp[i-1][0] #include<stdio.h> #include<string.

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

转载:poj题目分类(侵删)

转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K–0.50K:中短代码:0.51K–1.00K:中等代码量:1.01K–2.00K:长代码:2.01K以上. 短:1147.1163.1922.2211.2215.2229.2232.2234.2242.2245.2262.2301.2309.2313.2334.2346.2348

poj题库分类

初期:一.基本算法:     (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.     (4)递推.     (5)构造法.(poj3295)     (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)二.图算法:     (1)图的深度优先遍历和广度优先遍历.     (2)最短路径算法(dijkstra,bellman-ford,floyd,hea