碰撞問題。
彈性碰撞交換速度和方向,可以當成兩個質點相互交錯而過,不影響最後的結果,因為只需要排序就可以知道,最低的一定是最先放下的,以此類推。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define up(i,a,b) for(int i=a;i#define dw(i,a,b) for(int i=a;i>b;i--)
#define upd(i,a,b) for(int i=a;i<=b;i++)
#define dwd(i,a,b) for(int i=a;i>=b;i--)
//#define local
typedef
long
long ll;
const
double esp =
1e-6
;const
double pi =
acos(-
1.0)
;const
long
long inf =
0x3f3f3f3f
;using
namespace std;
typedef pair<
int,
int> pir;
const
double g =
10.0
;int c, n,h, r, t;
double
solve
(int t1)
else
return ans;
}int
main()
sort
(ans, ans + n);up
(i,0
, n)
}return0;
}
poj3684(彈性碰撞模型)
題解 兩個球相撞返回,首先如果忽視掉體積,看成質點,那麼相撞返回就可以理解成兩個求擦肩而過,互不影響,就和poj1852螞蟻的思想是一樣的 這樣想就相當於把題目簡化了。然後又由於題目的真實情況,先掉落的球一定是所有球中最下面的乙個,所以對最後求得的資料進行排序即可。include include i...
poj3684(相遇碰撞模型)
translation 將n個半徑為r的球放入乙個圓桶 圓桶口徑剛好放入乙個球 將圓桶豎直放著,最下端距離地面h高度,讓球每隔一秒自由下落,求t時刻各個球距離地面的高度。solution 所有的球都一樣可以忽視它們的碰撞,視為互相穿過繼續運動。這樣就可以分別單獨求出每個球t時刻的高度後排序就是答案了...
POJ 1852 Ants(模擬 彈性碰撞)
題意 在一根長為l厘公尺的水平木棍上有n只螞蟻,它們以每秒1cm s的速度走到木棍一端就會掉下去。現在知道它們起始位置 相對於木棍左端點的距離 但是不知道它們爬行的方向。兩隻螞蟻相遇後,它們會掉頭往反方向走。求所有螞蟻都落下木棍的最短時間和最長時間。如果採用窮舉搜尋的辦法列舉所有螞蟻的初始朝向,那麼...