zoukankan      html  css  js  c++  java
  • hdu5826

    题意:

    在一条无限长水平直轨道上有n个相同的球,给出每个球的初速度、起始位置、方向.
    给出若干询问,每次输出 t 秒时第 k 小的速度是多少.
    对任意球的任一时刻而言,速度与加速度同方向,且它们的乘积为定值C.

    题解:

    撞击对于速度没有影响,则对于相对大小也没有影响

    a*v=c;

    dv/dt=a;

    v*dv=c*dt;

    两边求定积分即可

    #include <iostream>
    #include <cmath>
    #include <algorithm>
    #include <cstdio>
    using namespace std;
    typedef long long ll;
    const int maxn=1e5+10;
    const double q = (1 + sqrt(5.0)) / 2.0;   // 黄金分割数
    int t,n;
    ll c,a[maxn];
    int main ()
    {
        cin>>t;
        while (t--)
        {
          scanf("%d%lld",&n,&c);
          ll x1,x2,x3;
          for(int i=1;i<=n;i++){
                scanf("%lld%lld%lld",&x1,&x2,&x3);
                a[i]=x1;
          }
          sort(a+1,a+1+n);
          int q;
          scanf("%d",&q);
          while(q--){
                int t,k;
                scanf("%d%d",&t,&k);
                double v=2*t*c+a[k]*a[k];
                v=sqrt(v);
                printf("%.3lf
    ",v);
          }
        }
    }
  • 相关阅读:
    java面向对象基础
    java重载方法、重写方法
    java数据类型
    Java简介
    随机读写,块读写
    Java基本常识

    循环双向链表
    双向链表(链表)
    循环单链表(链表)
  • 原文地址:https://www.cnblogs.com/shimu/p/5762311.html
Copyright © 2011-2022 走看看