zoukankan      html  css  js  c++  java
  • 2018HDU多校联赛第六场 6373 Pinball——水题&&物理题

    题意

    给定一个斜面,从某处让一个小球作自由落体运动,求小球与斜面的碰撞次数(假设都为弹性碰撞)。

    分析

    题图如下,x轴、y轴是虚拟的。

    根据高中物理的套路,沿斜面方向分解重力加速度即可。

    #include<bits/stdc++.h>
    using namespace std;
    
    const double g = 9.8;
    const double EXP = 0.000001;
    double a, b, x, y;
    
    int main()
    {
        int T;
        scanf("%d", &T);
        while(T--)
        {
            scanf("%lf%lf%lf%lf", &a, &b, &x, &y);
            if(a * y + b * x < EXP)
            {
                printf("0
    ");
                continue;
            }
            double sinn = b / sqrt(a*a + b*b), coss = a / sqrt(a*a + b*b);
            double all_t = sqrt(2 * ((x / coss) * (sinn  - 1 / sinn) + y ) / g);  //沿斜面的时间
            double t = sqrt(2 * (y + x * sinn / coss) / g);   //垂直斜面的单次时间
            //printf("%f  %f
    ", all_t, t);
            int tmp = (int)((all_t + EXP) / t);
            printf("%d
    ", (tmp + 1) / 2);
        }
        return 0;
    }
  • 相关阅读:
    HelloWorld入门程序
    再写博客
    iOS--小结系列一
    iOS--ARC
    ios--block
    iOS--protocol
    iOS--内存管理
    指针基本概念
    ZooKeeper系列之十:ZooKeeper的一致性保证及Leader选举
    ZooKeeper系列之九:ZooKeeper API简介及编程
  • 原文地址:https://www.cnblogs.com/lfri/p/11329711.html
Copyright © 2011-2022 走看看