hdu 5826 physics 物理+数学微分方程
来源:互联网 发布:爱温士采暖知乎 编辑:程序博客网 时间:2024/06/06 05:16
题目链接
题意:
给你n个小球,这些小球有起始的位置和方向,然后还有一个常数C,小球的瞬时速度和加速度满足av=C,然后有q次查询,问你在t秒后速度第k小的小球的速度。小球碰撞的时候是完全弹性碰撞
思路:
首先套普及一下完全弹性碰撞:
完全弹性碰撞的意思就是两个小球相撞后没有损失二者交换速度.
如果两个小球相向而行,那么两个小球互相交换速度,且保持原来另一个小球的方向运动.
如果一个运动的小球撞静止的小球,那么静止的小球以它的速度运动,另一个求静止.
同样的如果两个球同样的方向运动,但是后面的速度大,赶上的前面的小球,那么二者交换速度,前面小球的速度就比后面小球的速度快了.
这个题目会联想到POJ那个蚂蚁的题目,也就是对这个题目来说不需要去管小球碰撞,所有的速度是不变的(前提是a*v = c),相对大小也是不变的.
也就是说原本是第几小还是第几小.根据这个性质我们可以排个序然后求t秒后速度.
a = dv/dt 又根据v*a = c 得出
v*dv = c*dt .两边同时积分得 v’ =
#include<bits/stdc++.h>using namespace std;const int maxn= 1e5+5;typedef long long ll;ll v[maxn],c;int n;int main(){ int _; cin>>_; while(_--) { scanf("%d %lld",&n,&c); for(int i = 1;i <= n;++i) { int x,d; scanf("%lld %d %d",&v[i],&x,&d); } sort(v+1,v+1+n); int q; scanf("%d",&q); while(q--) { ll k , t; scanf("%lld %lld",&t,&k); ll a = v[k]*v[k]+2*c*t; double ans = sqrt(a*1.0); printf("%.3f\n",ans); } } return 0;}
阅读全文
0 0
- hdu 5826 physics 物理+数学微分方程
- HDU-5826 physics(物理定理+微分方程)
- hdu 5826 physics (物理数学)
- hdu 5826 physics (物理+积分)
- HDU 5826 physics(物理)
- HDU-5826-physics-数学推导
- HDU 5826 physics (数学推导)(规律)
- 数学 ( 微分方程+物理问题:狐狸追兔 )——Rower BO ( HDU 5761 )
- HDU.physics【物理+积分】【8月13】
- HDU 5826 微分方程
- hdu 5826 physics
- HDU 5826 physics
- hdu 5826 physics
- HDU 5826-physics
- HDU 5572 An Easy Physics Problem (物理、计算几何)
- HDU 5826 physics 【弹性碰撞】
- 物理题(physics,HDU 5826)
- HDOJ 5826 physics(数学推导)
- GOGOGO
- GPU的选择
- JAVA不使用第三个变量,交换两个变量的值
- 近来所想
- vim配置
- hdu 5826 physics 物理+数学微分方程
- (poj 2248 Addition Chains)<DFS+剪枝>
- 用jQuery实现手风琴动效
- 如何在linux上使用QQ(在终端上使用qq) mojo-qq
- flysun3344 git地址
- 一个android项目开发遇到的各种小问题(一)
- java学习记录
- 英语二
- 线程同步的5种方法