长春理工大学第十四届程序设计竞赛(重现赛)B.Bowling Game
2024-09-30 09:14:02
链接:https://ac.nowcoder.com/acm/contest/912/B
题意:
链接:https://ac.nowcoder.com/acm/contest/912/B
来源:牛客网
CUST的队员打完省赛后,小r带着大家去打保龄球。
保龄球是一项难度非常高的游戏,然而这根本难不住校队成员,他们个个都很厉害(炸和)一发10个瓶都倒。尤其是小r,每次都能闭着眼睛一次扔倒10个瓶。他们当中也有一个并不那么厉害的下水道玩家,每次都能把球丢进下水道里,导致一个球瓶都砸不中。
几轮下来,我们发现回来的球越来越少,最后只剩几个9号球了。他们不爱丢9号球,因为太轻了。
在询问工作小姐姐后,得知:咱们松江保龄球俱乐部技术并不那么先进,所以后台是人工操作把球捡回来,现在球没有回来,导致球变少的原因是球卡住了,投进下水道就可能会导致现在这种情况。
校队成员心里都有数,他们每人都至少炸和过一次,只有某下水道玩家。。。
我们得知后台都是方形的盒子,大概这样的时候保龄球会卡住,图中蓝色面积S1S1,黄色面积S2S2,问球的直径多大的时候会按照图中所示卡住。
思路:
根据几何推导出球所在三角形的三边长,x,y,z,得到(x+y+z)*r*1/2 = s1。
代码:
#include <bits/stdc++.h> using namespace std; typedef long long LL;
const int MAXN = 3e5 + 10;
const int MOD = 1e9 + 7;
int n, m, k, t; int main()
{
double s1, s2;
cin >> s1 >> s2;
double s3 = s1*4+s2;
double l3 = sqrt(s3), l2 = sqrt(s2);
double daiata = sqrt(l3*l3 - 8.0*s1);
double l4 = (l3-daiata)/2.0;
double l5 = l3-l4;
double res = s1*2/(l2+l4+l5);
cout << res*2.0 << endl; return 0;
}
最新文章
- Android setTag方法的key问题
- 解决js小数求和出现多位小数问题
- 企业该如何进行高效IT运维管理
- GridControl的列显示成图片+文字,并且不同的文字对应不同的图片
- TP复习3
- navicat 数据库管理工具快捷键
- 设备11g_rac配置对等
- inet_aton()
- cocos2d-js 帧序列动画
- JSP内置对象--web安全性及config对象的使用 (了解即可)
- AQS
- react中PureComponent浅对比策略
- Linux云计算运维-MySQL
- c++使用cmake创建dpdk项目
- BZOJ2616 : SPOJ PERIODNI
- 反序列化失败Failed to deserialize --- local class incompatible: stream classdesc serialVersionUID
- phpstorm 用法
- Spring Cloud Hystrix java.lang.NoClassDefFoundError: org/aspectj/lang/JoinPoint 问题
- 1192. [HNOI2006]鬼谷子的钱袋【进制】
- super-pow