Lightoj 1216

来源:互联网 发布:知名度最高的软件学校 编辑:程序博客网 时间:2024/06/03 18:20

题目链接:点这里
题意:求水杯中水的体积。
思路:推公式。

这里写图片描述
我猜的ABC和ADE相似(但是不知道证明),可以求出水的另一底面半径。
(路过大牛知道怎么证明或者知道我的是错的一定给提出来啊。)

AC代码:

#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <stack>#include <queue>#include <vector>#include <cmath>#include <map>#include <set>#define ll long long#define llu unsigned long longusing namespace std;const int maxn = 100010;const double eps = 1e-8;const double PI  = acos(-1.0);int main(){    int T; scanf("%d",&T);    for(int cas = 1; cas<=T; cas++){        double r1,r2,h,p;        scanf("%lf%lf%lf%lf",&r1,&r2,&h,&p);        double x = (r1-r2)*p/h+r2;        double s = PI*(x*x+r2*r2+x*r2)*p/3;        printf("Case %d: %.10lf\n",cas,s);    }    return 0;}
0 0