• 一道物理题


    好久没来填坑了【手动捂脸熊】

    啦啦啦物理考试终于结束了。。

    所以水一波物理题。。。看!下!面!↓

    逃离(escape)
    Description

    可怜的江流儿被困在了一个正 N 边形的中心。而追捕它的 N 只山妖存在于 正 N 边形的每个顶点上。山妖们按照顺时针方向,用 1~N 标号,因为山妖很傻, 所以每个山妖 i 都会朝 i+1 号山妖以一个固定的速率移动,移动方向会随着 i+1 位置变化而变化(N 号山妖朝 1 号山妖),最终所有山妖都将到达正 N 边形的 中心,也即江流儿的位置,从而完成追捕。 所以江流儿想要知道最后一只山妖到达中心的时间是多少,以便寻找逃离的 契机。
    Input 一行三个整数 N,A,V,分别表示正多边形的边数,正多边形的边长,每 个分身移动的速度。
    Output 一个实数,表示最后一只山妖到达中心的时间,保留小数点后 5 位。
    Sample Input 1
    3 10 5
    Sample Output 1
    1.33333
    Sample Input 2
    4 20 8
    Sample Output 2
    2.50000
    Data Limitation
    对 20%的数据,N<=4,且答案<=1000;
    对 70%的数据,N<=20;
    对 100%的数据,N<=300,A<=400000,V<=10000,且答案<=10000000。

    第一眼目测不是很懂题目,反正我就是这个样子的

    然后几眼之后看懂了题目。。

    首先有一点是肯定的,这N只妖怪是等价的,换句话说,是同时到达终点的

    YY任意一只的轨迹,大概就是一个绕圈圈的东西,像这样↓

    画的不是很好QAQ,不过大致就是这个意思

    再YY一下,发现部分分并没有什么意义,完全不晓得怎么打暴力

    然后通过画图可以发现一些奇怪的东西

    到达中心的时间就是所有点相遇的时间

    如图,我们分析其中相邻的两个点。将 A 与 B 的移动方向关于 AB 线段正交分解,AB相互靠近的速度可以分为两个部分,一部分为 A 靠近的速度,即为 A 原本的速度,另一部分为 B 远离的速度,即 B*cos(a)的速度(a 指 A 与 B 速度的夹角)。而 B 分解出来的另一个关于线段 AB 垂直的速度,对于我们要考虑的问题没有影响,仅仅影响了偏转角度,所以没有分析价值,直接忽略。由于题目已给出边数,速度间的夹角可以求出。

    题目就转化成了一个简单的追击问题。

    所以ans=A/(1-cos(2*π/N))/V

    贴上高贵的代码↓

    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    #define PI acos(-1.0)
    using namespace std;
    
    int a,n,v;
    double R,dv,sita;
    
    int main()
    {
        freopen("escape.in","r",stdin);
        freopen("escape.out","w",stdout);
        scanf("%d%d%d",&n,&a,&v);
        sita=2*PI/n;
        R=(double)a/2/sin(sita/2);
        dv=(double)v*sin(sita/2);
        printf("%.5lf
    ",R/dv);
        return 0;
    }

    然后,就好啦!

    【写的有漏洞的,欢迎路过大神吐槽】

    2016-09-12 23:45:50

    Ending.

  • 相关阅读:
    llvm,gcc
    smp,numa,mpp,umam,olap,dss,oltp,greenplum,presto
    数据结构学习时的零散算法
    Hadoop 伪分布式上安装 HBase
    可以ping通虚拟机但不能telnet 9000端口
    北邮连接bupt-mobile
    北邮软院机试2018
    研究生面试自我介绍
    Java面试题
    操作系统面试题
  • 原文地址:https://www.cnblogs.com/wry0112/p/5866898.html
Copyright © 2020-2023  润新知