BNUOJ 36012 magic

本文介绍了一个基于物理原理的计算模型,用于确定魔术师SillyHook及其分身完成特定表演所需的时间。通过分析分身间的相对运动,将其简化为追及问题进行求解。

魔法师Silly Hook正在表演一个神奇的魔术,他变出了他自己的N个分身,并成正N边形分布,他本身处于这个正N边形的中心,正N边形的边长为A。然后,每个分身都会朝顺时针方向下一个分身以一个相同的固定的速度V移动,移动方向会随着下一个分身的位置变化而变化,最终所有分身都将到达正N边形的中心,也就是回到Silly Hook本身,表演结束。

Silly Hook计划在比利时埃诺省Silly市巡回演出,他想提前知道对于每次表演需要多少时间。

Input

多组数据,到EOF结束。

每组数据一行三个整数N,A,V,分别表示 每次表演的分身个数,分身分布的正N边形的边长,每个分身移动的速度。

N ≤ 300 , A ≤ 400000 , V ≤ 10000 , 答案 ≤ 10000000 , 数据组数 ≤ 10

Output

每组数据一个实数,表示最后一个分身到达本身的时间,保留小数点后5位。

Sample Input

3 10 5
4 20 8

Sample Output

1.33333
2.50000

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

物理题~

这是什么啊……

因为所有人都是旋转对称的,所以我们只取其中两人来看。假设A一直在追B,那么我们以A所在区域的边的方向分解B速度的方向,这样,另一个方向就是没有用的,相当于一个追及问题,直接求就可以了~


#include<cstdio>
#include<iostream>
#include<cmath>
using namespace std;
#define pi acos(-1)

double n,a,v;

int main()
{
	while(scanf("%lf%lf%lf",&n,&a,&v)!=EOF) printf("%.5f\n",a/(v+v*cos(pi*(n-2)/n)));
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值