新年趣事之债务
Description
【题目背景】
在HNSDFZ的信息组里,Vivian Snow、Charles和Sunnypig之间有着一种奇怪的债务关系:Vivian Snow欠了Charles一百块钱,Charles欠了Sunnypig一百块钱,Sunnypig欠了Vivian Snow一百块钱。
【问题描述】
一天,三个人遇到了一起。由于他们都不够理智,一心想要回自己借出去的钱,于是互相之间追逐起来。最初,三个人分别站在一个边长为L正三角形的三个顶点上。某一个时刻,三个人同时开始以速度V匀速运动。他们运动的方向是这样的:每一个时刻,Vivian Snow运动的方向指向Sunnypig,Sunnypig运动的方向指向Charles,Charles运动的方向指向Vivian Snow,总之,每一个时刻,三个人都在尽快的接近各自欠自己债的人。最终,三个人都到达了同一个点上,并且通过和谈的方式解决了这一冲突。
Xiaomengxian知道此事后,想写一篇报道,宣传这件事情。他想知道每个人走的路程的长度S,以及他们到达同一个点所需要的时间T。
在HNSDFZ的信息组里,Vivian Snow、Charles和Sunnypig之间有着一种奇怪的债务关系:Vivian Snow欠了Charles一百块钱,Charles欠了Sunnypig一百块钱,Sunnypig欠了Vivian Snow一百块钱。
【问题描述】
一天,三个人遇到了一起。由于他们都不够理智,一心想要回自己借出去的钱,于是互相之间追逐起来。最初,三个人分别站在一个边长为L正三角形的三个顶点上。某一个时刻,三个人同时开始以速度V匀速运动。他们运动的方向是这样的:每一个时刻,Vivian Snow运动的方向指向Sunnypig,Sunnypig运动的方向指向Charles,Charles运动的方向指向Vivian Snow,总之,每一个时刻,三个人都在尽快的接近各自欠自己债的人。最终,三个人都到达了同一个点上,并且通过和谈的方式解决了这一冲突。
Xiaomengxian知道此事后,想写一篇报道,宣传这件事情。他想知道每个人走的路程的长度S,以及他们到达同一个点所需要的时间T。
Input
输入文件有两行。
第一行为一个实数L(0<=L<=1E100)。
第二行为一个实数V(0<=V<=1E100)。
第一行为一个实数L(0<=L<=1E100)。
第二行为一个实数V(0<=V<=1E100)。
Output
输出文件有两行。
第一行为一个实数S,保留一位小数。
第二行为一个实数T,保留一位小数。
第一行为一个实数S,保留一位小数。
第二行为一个实数T,保留一位小数。
Sample Input
13.0
50.56
Sample Output
8.7
15.5
Hint
所有单位均为国际标准单位。
Just For Fun :)
Just For Fun :)
Solution
非常纯粹的一道智商题(物理题)
我们发现他们的速度不变,但是方向时刻发生改变。
这就让人想起了数学上的一种美妙图形。
任意作一个三角形,并且在其中作一个与之相似的内接三角形,依次不断地作下去,最后的
三角形近似于一个点。
只关注其中一个三角形,如果它们是等边三角形,那么我们就会发现,其实题目中三个人的
运动路径与顶点连成的三条曲线近似。也就是说,当内接三角形的数量趋近于无穷大的时候
顶点所连成的曲线就是运动的路径。终点是等边三角形的内心(也是重心,垂心)。
所以根据这张图,我们可以知道每一个点的位移都是L/sqrt(3),而速度朝向终点的分量也一
直是v*cos(Pi/6)(每一个都是相似的等边三角形)。
所以t=x/v=2*L/(3*v),则s=vt。
最后输出答案即可。
我们发现他们的速度不变,但是方向时刻发生改变。
这就让人想起了数学上的一种美妙图形。
任意作一个三角形,并且在其中作一个与之相似的内接三角形,依次不断地作下去,最后的
三角形近似于一个点。
只关注其中一个三角形,如果它们是等边三角形,那么我们就会发现,其实题目中三个人的
运动路径与顶点连成的三条曲线近似。也就是说,当内接三角形的数量趋近于无穷大的时候
顶点所连成的曲线就是运动的路径。终点是等边三角形的内心(也是重心,垂心)。
所以根据这张图,我们可以知道每一个点的位移都是L/sqrt(3),而速度朝向终点的分量也一
直是v*cos(Pi/6)(每一个都是相似的等边三角形)。
所以t=x/v=2*L/(3*v),则s=vt。
最后输出答案即可。
#include<iostream>
#include<cmath>
using namespace std;
double v,l,s,t;
int main(){
cin>>l>>v;
t=2*l/3/v;s=v*t;
printf("%.1lf\n%.1lf",s,t);
return 0;
}