zoukankan      html  css  js  c++  java
  • 长春理工大学第十四届程序设计竞赛(重现赛)B

    B Bowling Game

    题目链接:https://ac.nowcoder.com/acm/contest/912/B

    题目

    CUST的队员打完省赛后,小r带着大家去打保龄球。


    保龄球是一项难度非常高的游戏,然而这根本难不住校队成员,他们个个都很厉害(炸和)一发10个瓶都倒。尤其是小r,每次都能闭着眼睛一次扔倒10个瓶。他们当中也有一个并不那么厉害的下水道玩家,每次都能把球丢进下水道里,导致一个球瓶都砸不中。
     



    几轮下来,我们发现回来的球越来越少,最后只剩几个9号球了。他们不爱丢9号球,因为太轻了。

    在询问工作小姐姐后,得知:咱们松江保龄球俱乐部技术并不那么先进,所以后台是人工操作把球捡回来,现在球没有回来,导致球变少的原因是球卡住了,投进下水道就可能会导致现在这种情况。

    校队成员心里都有数,他们每人都至少炸和过一次,只有某下水道玩家。。。

    我们得知后台都是方形的盒子,大概这样的时候保龄球会卡住,图中蓝色面积S1

        输入

    输入共一行,由s1,s2两个正整数构成,s1s2为图中面积,保证s1,s2109且图形合法)

    输出
    输出一行,即保龄球的直径 D。

    你的答案与标准答案误差在±0.001范围以内都算正确。

    样例
    input
    6 25
    693 2853
    output
    2
    21.586519

    思路

    将s1分为三个小三角形,两个直角边的边长之和就是sqrt(4*s1+s2),斜边边长就是sqrt(s2),列一元二次方程即可


    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int s1,s2;
        while(cin>>s1>>s2)
        {
            double len=sqrt(s2+4*s1);
           
            double _1=(len+sqrt(len*len-8*s1))/2;
           
            double _2=(len-sqrt(len*len-8*s1))/2;
           
            double xie=sqrt(s2);
            
            double sum=xie+_1+_2;
          
            cout<<fixed<<setprecision(6)<<(4*s1)/sum<<endl;
     
        }
        return 0;
    }
     
  • 相关阅读:
    每日总结19
    每日博客
    每日博客
    每日博客
    每日博客
    今日收获
    python 基础学习
    python 基础学习
    python 基本语法学习
    【Rust】格式化Formatting
  • 原文地址:https://www.cnblogs.com/Vampire6/p/10992423.html
Copyright © 2011-2022 走看看