zoukankan      html  css  js  c++  java
  • poj3684(弹性碰撞模型)

    题解:两个球相撞返回,首先如果忽视掉体积,看成质点,那么相撞返回就可以理解成两个求擦肩而过,互不影响,(就和poj1852蚂蚁的思想是一样的),这样想就相当于把题目简化了。然后又由于题目的真实情况,先掉落的球一定是所有球中最下面的一个,所以对最后求得的数据进行排序即可。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    const double g = 10.0;
    int n, h, r, T;
    double y[105];
    double calc(int T) {
        if(T < 0) return h;
        double t = sqrt(2 * h / g);
        int k = (int)(T / t);
        if(k % 2 == 0) {
            double d = T - k * t;
            return h - g * d * d / 2;
        } else {
            double d = k * t + t - T;
            return h - g * d * d / 2;
        }
    }
    void solve() {
        for(int i = 0; i < n; i++) {
            y[i] = calc(T - i);
        }
        sort(y, y + n);
        for(int i = 0; i < n; i++) {
            printf("%.2f%c", y[i] + 2 * r * i / 100.0, i + 1 == n ? '
    ' : ' ');
        }
    }
    int main() {
        int p;
        scanf("%d", &p);
        while(p--) {
            scanf("%d%d%d%d", &n, &h, &r, &T);
            solve();
        }
        return 0;
    }
    

      

  • 相关阅读:
    代码编辑
    作业7
    实验 13 综合练习三
    模版 实验二 概要设计
    在线评测系统(OJ)使用方法
    作业 6 结构体
    结构体简介
    实验 10 指针2
    (第一周)软件工程四人组
    (第一周)读《构建之法》
  • 原文地址:https://www.cnblogs.com/jaszzz/p/12849824.html
Copyright © 2011-2022 走看看