B Bowling Game
题目链接:https://ac.nowcoder.com/acm/contest/912/B
题目
CUST的队员打完省赛后,小r带着大家去打保龄球。
保龄球是一项难度非常高的游戏,然而这根本难不住校队成员,他们个个都很厉害(炸和)一发10个瓶都倒。尤其是小r,每次都能闭着眼睛一次扔倒10个瓶。他们当中也有一个并不那么厉害的下水道玩家,每次都能把球丢进下水道里,导致一个球瓶都砸不中。
几轮下来,我们发现回来的球越来越少,最后只剩几个9号球了。他们不爱丢9号球,因为太轻了。
在询问工作小姐姐后,得知:咱们松江保龄球俱乐部技术并不那么先进,所以后台是人工操作把球捡回来,现在球没有回来,导致球变少的原因是球卡住了,投进下水道就可能会导致现在这种情况。
校队成员心里都有数,他们每人都至少炸和过一次,只有某下水道玩家。。。
我们得知后台都是方形的盒子,大概这样的时候保龄球会卡住,图中蓝色面积S1
输入
输入共一行,由s1,s2两个正整数构成,s1和 s2为图中面积,保证s1,s2≤109且图形合法) 输出
输出一行,即保龄球的直径 D。 你的答案与标准答案误差在±0.001范围以内都算正确。 样例input 6 25693 2853output221.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; }
原文地址:https://www.cnblogs.com/Vampire6/p/10992423.html
时间: 2024-11-05 21:35:38