2018-3-18ccf第二題小球碰撞問題,題目意思大致如下:
兩面牆之間有n個小球,初始以每單位時間1單位長度向右運動,當小球撞到牆或者兩個小球相撞時,小球向反方向運動,速度不變。(各小球初始位置和牆距均為偶數,不存在三個小球同時碰撞的情況)
要求:
1.第一行輸入三個正整數:小球個數n,牆之間的距離l;時間t;
2.第二行輸入n個偶數表示小球的起始位置;
3.輸出經過t時間後各小球的位置。
思路:1.設兩個陣列,a-小球位置,b-小球的運動方向/設向右為1,向左為-1;
2.小球發生碰撞只有兩種情況:
碰牆-只有第乙個和最後乙個小球可能撞牆,a[0]=0 , a[n-1]=l;只要發生碰撞就意味著小球運動方向改變,b[i]取反,b[i]*(-1);碰球-只有相鄰的兩個小球可能發生碰撞,a[i]=a[i+1];
#include#includeint main()
//假設小球的初始位置依次增大,這裡不再對初始位置進行排序
//每一單位時間,小球前進一單位長度,一時一動一判
for(j=0;jif(a[i]==l) //判斷最後乙個球是否撞牆
b[i]=b[i]*(-1);
} }for(i=0;iprintf("%d ",a[i]);
return 0;
}
CCF 碰撞的小球
201803 2 碰撞的小球 時間限制 1.0s 記憶體限制 256.0mb 問題描述 因為所有小球的初始位置都為偶數,而且線段的長度為偶數,可以證明,不會有三個小球同時相撞,小球到達線段端點以及小球之間的碰撞時刻均為整數。同時也可以證明兩個小球發生碰撞的位置一定是整數 但不一定是偶數 輸入格式 輸...
CCF 20180302小球碰撞
include using namespace std 1.首先進行排序 結構體陣列的排序 2.結果的輸出 不是根據change i id 的1 n的輸出,而是根據其下邊的1 n來輸出 struct nodechange 102 int main 結構體陣列排序 for int i 1 ifor i...
ccf小球碰撞Python實現
輸入的第一行包含三個整數n,l,t,用空格分隔,分別表示小球的個數 線段長度和你需要計算t秒之後小球的位置。第二行包含n個整數a1,a2,an,用空格分隔,表示初始時刻n個小球的位置。輸出一行包含n個整數,用空格分隔,第i個整數代表初始時刻位於ai的小球,在t秒之後的位置。樣例輸入 3 10 5 4...