zoukankan      html  css  js  c++  java
  • ZOJ3733_Skycity

    这。。。水题。可惜坑了无数发。

    显然对于当前的半径的园,多边形的边数越多,周长越短,面积也就越小。

    一开始我是用二分去做的,事实证明也是可以的,只是我坑了。

    其实没必要去用二分哦,这样来考虑这问题。

    每次我都用最短允许的边与圆相切,看看这条边所占的角度有多大,这样就可以直接得出多少边形了。。。。(神坑吧)

    接下来直接根据边数算出面积,就得答案了。   这才是真正的全场最水题啊。。。。。啊啊。。嗄。 吖a.a..。 阿。。

    精度问题也都不用考虑。。。。。

    #include <cstdio>
    #include <cmath>
    using namespace std;
    const double full=2*acos(-1.0);
    
    double R,r,H,S,ang,l,h,ans,cur,len,dr;
    int n,F;
    
    int main()
    {
        while (scanf("%lf%lf%lf%d%lf",&R,&r,&H,&F,&S)!=EOF)
        {
            h=H/F,ans=0,cur=r,dr=(R-r)/F,l=S/h;
            while (F--)
            {
                ang=2*atan(l/(2*cur));
                n=(int)(full/ang); 
                ans+=tan(full/(2*n))*cur*2*n;
                cur+=dr;
            }
            printf("%.3f
    ",ans*h);
        }
        return 0;
    }
    如有转载,请注明出处(http://www.cnblogs.com/lochan)
  • 相关阅读:
    NewWords/13001400
    UIWebView加载Js以及Css文件
    驾校错题集合
    NewWords/15001600
    javascript动态添加、修改、删除对象的属性和方法
    NewWords/12001300
    NewWords/11001200
    NewWords/16001700
    NewWords/14001500
    JS与iOS之间的通信
  • 原文地址:https://www.cnblogs.com/lochan/p/3454571.html
Copyright © 2011-2022 走看看