长春理工大学第十四届程序设计竞赛(重现赛)B

Posted vampire6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了长春理工大学第十四届程序设计竞赛(重现赛)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;

 

 

 

以上是关于长春理工大学第十四届程序设计竞赛(重现赛)B的主要内容,如果未能解决你的问题,请参考以下文章

长春理工大学第十四届程序设计竞赛(重现赛)F

长春理工大学第十四届程序设计竞赛(重现赛)H

长春理工大学第十四届程序设计竞赛(重现赛)J.Printout

长春理工大学第十四届程序设计竞赛F Successione di Fixoracci——找规律&&水题

第十四届华中科技大学程序设计竞赛决赛同步赛

第十四届华中科技大学程序设计竞赛决赛同步赛 Beautiful Land