nyoj 彈球II(數學 模擬)

2021-06-27 08:03:05 字數 1274 閱讀 3475

時間限制:

1000 ms  |  記憶體限制:

65535 kb

描述 遊戲廳裡有一種很常見的遊戲機,裡面有很多根管子有規律地排成許多行。小球從最上面掉下去,碰到管子會等概率地往管子左邊或者右邊的空隙掉下去。不過在最靠邊的小球只會往一邊掉(如圖,灰色小球只可能掉到右邊空隙)。現在已知共

2 * n - 1

行管子,第i行有

ai個管子,如果

i是奇數,那麼

ai等於

m,如果

i是偶數,

ai等於

m - 1

。小球從第1行第

k個管子右邊掉下去,要求小球從最後一行各個出口掉出來的概率。

輸入

第一行是乙個整數t(1≤t≤50),表示有t組測試資料。 

每組資料第一行有兩個整數n(1≤n≤100)和m(2≤m≤10),表示有2*n-1行管子,奇數行有m個管子,偶數行有m-1個管子。 

第二行是乙個整數k(1≤k≤m-1),表示小球從第1行第k個管子右邊掉下去。

輸出輸出m-1個小數,第i個數表示小球從最後一行第i個出口出來的概率。 

每個小數保留小數點後六位,小數與小數之間用乙個空格隔開。

樣例輸入

1

3 32

樣例輸出

0.375000 0.625000
**

gdut校賽

上傳者

acm_李如兵

思路: 把彈球版看做乙個n*2的圖

0  1  2  3  4  5  6  7  8  9

0  1      *      *      *

2   1

3          *      *

4      2      2

5     *       *      *

6

#include#include#include#include#includeusing namespace std;

double dp[205][25];

int main()

}else//奇數考慮邊界}}

double sum=0;

for(int i=2; i<=2*m-2; i+=2)

sum+=dp[2*n][i];

for(int i=2; i<=2*m-2; i+=2)

printf("%.6lf ",dp[2*n][i]/sum);

printf("\n");}}

matlaB模擬桌面屏保彈球

function billiards numberofballs call billiards number of balls e.g.billiards 10 if nargin 0 numberofballs 10 endclose all hold on drawflag 1 factor 8...

1103 分糖果 II(數學 模擬) M,S

我的解法 模擬整個分配糖果的過程 時間複雜度為o m ax c andi es,n o max sqrt,n o max cand ies n n是人數。class solution else times num people 分配的輪數 return getcandy 簡單優化的話,可以將for迴...

C 模擬WIN7水泡屏保 彈球模擬

用c gdi 來模擬 win7 的水泡屏保.需要解決以下三個問題 1.水泡與邊緣碰撞的模擬 2.水泡之間的碰撞模擬.3.建立水泡 ball 的類 1.水泡與邊緣碰撞的模擬其實很簡單.一開始.我還覺得還需要用 公式去計算.後來才發現.只在x,y 水泡的位置 在到邊緣時取下負值即可模擬.view cod...