• 【kAri OJ 616】Asce的树


    时间限制 1000 ms 内存限制 65536 KB

    题目描述

    作为一个东北大老爷们,大A熊以力气大著称,现在有一颗半径为r的树,剖面图如黑色的圆,大A熊决定搬几个半径为R的圆柱形桶将其围住,剖面图如红色和绿色的圆

    如图,大A熊必须用7个半径为r的桶能被围住,他的树。

    hint:

    double转换int可以这样: x=(int)y;这种方式是下取整的。

    输入输出很大,cin cout 会造成超过时间限制,请使用scanf输入和printf输出,控制符可以用 "%lf" 。

    you may use those function

    Trigonometric functions

    Hyperbolic functions

    输入格式

    数据由多组输入组成,EOF结束。

    每组数据一行,包含两个数r,R(0<r,R<100000.0)

    输出格式

    每组输出占一行,表示大A熊最少需要放置的桶的个数。

    输入样例

    3.0 3.0
    3.0 2.9

    输出样例

    6
    7

    分析

    由几何关系可得,

    R/(R+r)=sinθ

    θ=2π/(2*n)=π/n

    所以n=π/arcsin(R/(R+r)),并且向上取整。

    然后在转换成整数输出n。

    代码

    #include<cstdio>
    #include<cmath>
    #define ll long long
    #define dd double
    
    const dd PI=acos(-1.0);
    dd r,R,n;
    ll ans;
    
    int main()
    {
        while(~scanf("%lf%lf",&r,&R))
        {
            n=ceil(PI/asin(R/(R+r)));
            ans=(ll)n;
            printf("%ld
    ",ans);
        }
        return 0;
    }

      

  • 相关阅读:
    Python随笔-快排
    万恶的tileMap
    cocos2d-js引擎学习笔记
    【cocos2d-js 3.0】制作2048
    js构造函数的完美继承(欢迎吐槽)
    快速排序(js版本)
    javascript语言学习笔记。
    数据结构与算法
    A*寻路算法 (cocos2d-js详细代码)
    javascript单例模式(懒汉 饿汉)
  • 原文地址:https://www.cnblogs.com/flipped/p/5257640.html
Copyright © 2020-2023  润新知