[vijos1072] 新年趣事之债务

来源:互联网 发布:php九九乘法表代码解释 编辑:程序博客网 时间:2024/05/01 19:48

题目描述

【题目背景】
  在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。


输入格式

输入文件有两行。
第一行为一个实数L(0<=L<=1E100)。
第二行为一个实数V(0<=V<=1E100)。


输出格式

输出文件有两行。
第一行为一个实数S,保留一位小数。
第二行为一个实数T,保留一位小数。


样例数据

样例输入

13.05
0.56

样例输出

8.7
15.5


说明

所有单位均为国际标准单位。
Just For Fun :)


题目分析

三个人的运动路径如下图所示(图画的丑见谅)。
这里写图片描述
对于每一个时刻,每个人的运动方向都沿着两人间的连线方向,大小为v,这样,在指向等边三角形中心方向上有一个分速度v’,大小为v在指向中心方向上的正投影大小,v’=v*cos30°。同理每个人在指向中心方向上的位移l’=l*(√3)/3,两者相除得t=(2/3)*(l/v)。由于运动的等时性,总路程为
s=t*v=(2/3)*l。


源代码

#include<algorithm>#include<iostream>#include<iomanip>#include<cstring>#include<cstdlib>#include<vector>#include<cstdio>#include<cmath>#include<queue>using namespace std;inline const int Get_Int() {    int num=0,bj=1;    char x=getchar();    while(x<'0'||x>'9') {        if(x=='-')bj=-1;        x=getchar();    }    while(x>='0'&&x<='9') {        num=num*10+x-'0';        x=getchar();    }    return num*bj;}double l,v;int main() {    scanf("%lf%lf",&l,&v);    printf("%0.1lf\n",2*l/3);    printf("%0.1lf\n",2*l/(3*v));    return 0;}

0 0
原创粉丝点击