zoukankan      html  css  js  c++  java
  • POJ 3684_Physics Experiment

    题意:

    若干球最初从高到低排列,依次落下。 球与地面碰撞,速度不变方向相反,球之间碰撞, 交换速度和方向。问某一时刻各个球的高度。

    分析:

    把球之间的碰撞看成是擦肩而过,但是由于半径的存在,最后每个球的高度都要加上2ir,还有注意半径的单位是cm

    代码:

    #include<cstdio>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    double h[105];
    int main (void)
    {
        int C;scanf("%d",&C);
        int n;
        double H, R, t;
        while(C--){
            scanf("%d%lf%lf%lf",&n, &H, &R, &t);
            for(int i = 0; i < n; i++){
                double st = t - i;
                if(st <= 0) {h[i] = H;continue;}
                double tt = sqrt(H/5.0);
                int b = floor(st/tt);
                double a = st - b * tt;
                if(b%2 == 0)  h[i]= H -5.0 *a*a;
                else {
                    double v = sqrt(20.0 * H);
                    h[i] = (double) v * a-5.0 * a * a;
                }
            }
            sort(h, h+n);
            for(int i = 0; i < n; i++){
                if(i == n-1) printf("%.2f
    ", h[i] + (2 * i * R/100.0));
                else printf("%.2f ",h[i] + (2 * i * R/100.0));
            }
        }
        return 0;
    }
    

    中间加速度公式还写错了,宽哥我对不起你啊;(

  • 相关阅读:
    把ssl模块加入到已经编译好的apache中实现HTTPS
    六,集合
    一. 计算机语言基础知识:
    三, 字符串
    四,列表的使用方法
    hash()函数的用法
    五,字典用法总结
    十,编码
    七八九,条件和循环语句
    二.Python的基础语法知识
  • 原文地址:https://www.cnblogs.com/Tuesdayzz/p/5758803.html
Copyright © 2011-2022 走看看