201803 2 碰撞的小球

2021-10-21 12:11:58 字數 875 閱讀 4757

資料規模和約定:對於所有評測用例,1 ≤ n ≤ 100,1 ≤ t ≤ 100,2 ≤ l ≤ 1000,0 < ai < l。l為偶數。保證所有小球的初始位置互不相同且均為偶數。

#include

#include

using

namespace std;

const

int n =

100;

class

ball

b[n +10]

;bool

cmp_pos

(ball b1, ball b2)

bool

cmp_id

(ball b1, ball b2)

intmain()

}// 對小球位置排序的原因:方便之後對小球位置的討論(設定小球序號的作用:恢復被打亂的次序),之後碰撞的整個過程中,所有的小球相對位置保持不變

sort

(b, b + n, cmp_pos)

;// 小球每次只移動乙個單位時間的長度

while

(t--)}

// 檢測中間的小球是否碰撞

for(

int i =

1; i < n; i++)}

}// 設定id的原因:用於將pos排序後的小球恢復到最初的狀態

sort

(b, b + n, cmp_id)

;for

(int i =

0; i < n; i++

)return0;

}

參考:

201803 2碰撞的小球

問題描述 提示因為所有小球的初始位置都為偶數,而且線段的長度為偶數,可以證明,不會有三個小球同時相撞,小球到達線段端點以及小球之間的碰撞時刻均為整數。同時也可以證明兩個小球發生碰撞的位置一定是整數 但不一定是偶數 輸入格式 輸入的第一行包含三個整數n,l,t,用空格分隔,分別表示小球的個數 線段長度...

201803 2碰撞的小球

問題描述 提示因為所有小球的初始位置都為偶數,而且線段的長度為偶數,可以證明,不會有三個小球同時相撞,小球到達線段端點以及小球之間的碰撞時刻均為整數。同時也可以證明兩個小球發生碰撞的位置一定是整數 但不一定是偶數 輸入格式 輸入的第一行包含三個整數n,l,t,用空格分隔,分別表示小球的個數 線段長度...

201803 2 碰撞的小球

一秒後,三個小球的位置分別為5,7,9。兩秒後,第三個小球碰到牆壁,速度反向,三個小球位置分別為6,8,10。三秒後,第二個小球與第三個小球在位置9發生碰撞,速度反向 注意碰撞位置不一定為偶數 三個小球位置分別為7,9,9。四秒後,第乙個小球與第二個小球在位置8發生碰撞,速度反向,第三個小球碰到牆壁...