有一種做法:列舉每個球滾到哪個坑里,算出其概率,再乘上球到這個坑的距離,把結果相加。
但是你會發現,這樣子很難處理,而且有許許多多複雜的情況。
我們換乙個角度:對於每乙個\(i\)和\(i+1\)之間的線段,我們算其被經過的期望次數。
手玩一會兒不難發現有如下結論:
對於一條線段,如果其左邊為洞,右邊為球,那麼肯定是右邊的球先經過這條線段,再左邊的球經過,再右邊的經過……如此反覆。然後,還有乙個這樣顯而易見的結論:任何時候任意兩個球之間都存在洞如果其右邊為洞,左邊為球,那麼肯定是左邊的球先經過,再右邊的,再左邊的……如此反覆。
於是,不難設計乙個dp。
記\(dp[l][r][0/1]\)表示左邊有\(l\)個未進洞的球,右邊有\(r\)個未進洞的球,此時應該是右邊/左邊的球經過這條線段,這條線段被經過的期望次數。
至於轉移,有一下三種情況(以第3維為0為例):
1.讓乙個左邊的球進洞,概率為\(\frac\),此時選的球不可能經過此線段,因此這一部分為\(\frac\cdot dp[l-1][r][0]\)
2.讓乙個右邊的球進洞,並且經過此線段。不難發現,右邊僅有最靠近這個洞的球並且方向選對才可以進洞,此時概率為\(\frac\cdot \frac\cdot \frac=\frac\),那麼這一部分為\(\frac\cdot \left(dp[l][r-1][1]+1\right)\)
3.讓乙個右邊的球進洞,並且不經過此線段。此時概率為\(\frac-\frac=\frac}\),這一部分為\(\frac}\cdot dp[l][r-1][0]\)
所以,\[dp[l][r][0]=\frac\cdot dp[l-1][r][0]+\frac\cdot \left(dp[l][r-1][1]+1\right)+\frac}\cdot dp[l][r-1][0]
\]第3維為1同理。
最後,答案即為
\[ans=\sum_^(x_-x_)\cdot dp[i-1][n-i+1][0]+(x_-x_)\cdot dp[i][n-i][1]
\]
2020杭電多校第5場
1001 tetrahedron 直角三稜錐有乙個性質 底面面積的平方等於三個側面面積的平方和。然後根據體積可以算出來h,1 h2 a2b 2 a2 c2 b 2c2a 2b2c 2 frac frac h21 a 2b2c 2a2b 2 a2 c2 b 2c2 這樣在o n 的時間是沒法算期望的,...
2020 杭電多校第6場
1009 divisibility 題意 十進位制下判斷乙個數n能否被3整除的方法是 判斷n的各位數的和能否被3整除,現給你乙個b和x,判斷再b進製下能否用這種方法判斷所有數能否整除x。打表可以找規律。include using namespace std typedef long long ll ...
2020杭電多校第7場 1007 Game
原題鏈結 題意 有乙個二維平面,上面有n個點,在第乙個點上有一顆石頭。現在有兩個人做遊戲,他們輪流移動石頭,第一次移動的時候可以將石頭移動到平面上的其他任何的點上。之後的每次移動,可以將石頭移動到比上次移動距離更遠的點上。當輪到某人時,他無法再移動石頭,則判他為輸。做法 我們先考慮第一步 當前是第乙...