hdu 5826 (物理) physics

题目:这里

题意:光滑的水平直线上有n个质量相等的小球,已知每个小球的初始位置,初始速度和方向,每个小球的每个时刻的加速度a都满足a*v=c,v是该时刻的速度,c是已知的

常数,小球之间的碰撞是完全碰撞(不明白就百度),然后q个询问,每次询问第t秒时速度第k小的小球速度是多少?

完全碰撞即碰撞后速度交换,速度还是那两个速度,只是不是原来那个球了而已,但这并不时需要考虑的,因为只需要关心速度,所以初始方向以及初始位置什么的都不需要在意,

因为加速度a=c/v,加速度每时每刻都在变,速度每时每刻也在变,而且不是均匀的变化,所以因为加速度a=dv/dt=c/v==>dt/dv=v/c==>t=v^2/(2*c)-v0(初始速度)^2/(2*c)

v=sqrt(v0*v0+2*t*c),由这个式子可以知道初始速度的大小顺序在t秒后速度的大小顺序依旧不变,现在是第几大的t秒后依旧是第几大的。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<algorithm>
 5 #include<cmath>
 6 using namespace std;
 7
 8 const int M = 1e5 + 10;
 9 double v[M];
10
11 int main()
12 {
13     int t,n;double c;
14     scanf("%d",&t);
15     while (t--){
16         scanf("%d%lf",&n,&c);
17         for (int i=1 ; i<=n ; i++){
18             int x,y;
19             scanf("%lf%d%d",&v[i],&x,&y);
20         }
21         sort(v+1,v+n+1);
22         int q;
23         scanf("%d",&q);
24         while (q--){
25             int k;double ti;
26             scanf("%lf%d",&ti,&k);
27             printf("%.3lf\n",sqrt(v[k]*v[k]+2*ti*c));
28         }
29     }
30     return 0;
31 }
时间: 2025-01-12 02:22:33

hdu 5826 (物理) physics的相关文章

HDU 5826 physics(物理)

HDU 5826 physics(物理) Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)   Description 题目描述 There are n balls on a smooth horizontal straight track. The track can be considered to be a number line. The balls can be con

hdu 4969 物理/积分

题意:a从圆心出发去追b,b沿着圆跑,速度分别是v2,v1(匀速),a,b,圆心始终三点共线,圆半径为R,问a在d距离内能否追到b. 哎,大学的物理积分都忘记了...好陌生了...看了题解才会的...把a的速度v2分解为径向速度和切向速度,则切向速度和B的速度平行,角速度相等,w(哦米噶)=v1/R, 设某时刻a距离圆心距离为 r,则径向速度 dr/dt=根号下(v2^2-w^2*r^2),移项,设t的时候追到,(0,t)定积分即可求出时间t. t=R/v1*acsin(v1/v2): #inc

hdu 5826 physics (物理数学,积分)

physics Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 817    Accepted Submission(s): 454 Problem Description There are n balls on a smooth horizontal straight track. The track can be considere

hdu 5826 physics

水题: 题意:给你n个球,在一维方向上,每个球给三个量,分别为初速度v,初始坐标x,方向(1||-1),每个球会运动,加速度为a,满足a*v=c,c已知,可能会完全碰撞,问第t秒第k小的速度是多少: 想法:第一眼看到a*v=c,立即想到了高中物理的恒定功率,小车的加速阶段的运动模型,设m=1,则a*m*v=c=p:再用动量定理,p*t=1/2*m*v*v-1/2*m*v0*v0,即可得出: 代码: #include <bits/stdc++.h> using namespace std; co

HDU 5572--An Easy Physics Problem(射线和圆的交点)

An Easy Physics Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 3845    Accepted Submission(s): 768 Problem Description On an infinite smooth table, there's a big round fixed cylinder an

ACM 2015年上海区域赛A题 HDU 5572An Easy Physics Problem

题意: 光滑平面,一个刚性小球,一个固定的刚性圆柱体 ,给定圆柱体圆心坐标,半径 ,小球起点坐标,起始运动方向(向量) ,终点坐标 ,问能否到达终点,小球运动中如果碰到圆柱体会反射. 学到了向量模板,写法简洁. 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #define clc(a,b) sizeof(a,b,sizeof(a)) 6

construct2中对象的物理属性(Physics Behaviors)

Construct2游戏中经常需要给某些对象添加物理属性(Physics Behavior),下面详细描述了这个物理Physics属性. (物理运动只能发生在都带有物理属性的对象之间,如果有的对象不带有物理属性,那么就不会发生任何物理运动.) 参数: Immovable(禁止移动): 通常用于游戏场景的设置.比如为了防止带有重力属性的游戏地面掉落出游戏画面,或是受到撞击,这些场景就会旋转或是移动.通过设置Immovable参数来防止移动和旋转等运动,但是又可以参与游戏中的物理碰撞. Collis

java开发的简易学生成绩管理系统

经过1个月的紧张学习和应用,终于做出了这个简易的学生成绩管理系统. 代码如下(仅供参考学习) view包下的菜单 package com.xujulong.www.view: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; import com.xujulong.www.po.Manager; import

Asp.Net 之 枚举类型的下拉列表绑定

有这样一个学科枚举类型: /// 学科 /// </summary> public enum Subject { None = 0, [Description("语文")] Chinese = 1, [Description("数学")] Mathematics = 2, [Description("英语")] English = 3, [Description("政治")] Politics = 4, [Desc