#P13456. [GCJ 2008 Qualification] Fly Swatter
[GCJ 2008 Qualification] Fly Swatter
Description
你用网球拍打中一只苍蝇的概率是多少?
首先,忽略球拍的手柄。假设球拍是一个完美的圆环,外半径为 ,厚度为 (因此圆环的内半径为 )。
圆环上覆盖有水平和垂直的球线。每根球线都是半径为 的圆柱体。每根球线都是圆环上的一条弦(即连接圆上两点的直线)。相邻两根球线之间有长度为 的空隙。所有球线关于圆心对称,即有一对球线的中心正好经过圆环的中心。
苍蝇是一个半径为 的球体。假设球拍沿垂直于圆环平面的直线运动。还假设苍蝇的中心在球拍外半径以内,并且在该半径范围内的任意位置出现的概率相等。只要苍蝇与球拍(包括圆环或球线)有任何重叠,就算打中了苍蝇。
Input Format
第一行包含一个整数 ,表示测试用例的数量。
接下来的 行,每行包含 、、、 和 五个数,数值之间用一个空格隔开。所有数值均保留 6 位小数。
Output Format
共 行,每行格式为 "Case #: ",其中 表示测试用例编号, 表示苍蝇被球拍打中的概率。
只要答案的相对或绝对误差不超过 ,即视为正确。
5
0.250000 1.000000 0.100000 0.010000 0.500000
0.250000 1.000000 0.100000 0.010000 0.900000
0.000010 10000.000000 0.000010 0.000010 1000.000000
0.400000 10000.000000 0.000010 0.000010 700.000000
1.000000 100.000000 1.000000 1.000000 10.000000
Case #1: 1.000000
Case #2: 0.910015
Case #3: 0.000000
Case #4: 0.002371
Case #5: 0.573972
Hint
- 、、、 和 均为正数,且不超过 10000。
小数据集(5 分,测试集 1 - 可见)
- 球线总数最多为 60(即每个方向最多 30 根)。
大数据集(20 分,测试集 2 - 隐藏)
- 球线总数最多为 2000(即每个方向最多 1000 根)。
由 ChatGPT 4.1 翻译
京公网安备 11011102002149号