題目大意:
乙個三角形木板,豎直立放,上面釘著n(n+1)/2顆釘子,還有(n+1)個格仔(當n=5時如圖1)。每顆釘子和周圍的釘子的距離都等於d,每個格仔的寬度也都等於d,且除了最左端和最右端的格仔外每個格仔都正對著最下面一排釘子的間隙。
讓乙個直徑略小於d的小球中心正對著最上面的釘子在板上自由滾落,小球每碰到乙個釘子都可能落向左邊或右邊(概率各1/2),且球的中心還會正對著下一顆將要碰上的釘子。例如圖2就是小球一條可能的路徑。
現在的問題是計算拔掉某些釘子後,小球落在編號為m的格仔中的概率pm。假定最下面一排釘子不會被拔掉。例如圖3是某些釘子被拔掉後小球一條可能的路徑。
思路:dp
若有釘子,則該點的概率為上面兩個點的概率和
無釘子,則該點概率為上上面點的概率
注意資料較大
#include#includeview code#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
char map[55][55
];__int64 f[
55][55
];int
n,m;
intmain()
if(map[i][j]=='
.') f[i+2][j+1]+=f[i][j];
}while(f[n+1][m+1]%2==0&&f[n+1][m+1]!=0
)
if(f[n+1][m+1]==0) f[1][1]=1
; printf(
"%i64d/%i64d
",f[n+1][m+1],f[1][1
]);}
poj 1189 釘子和小球 DP
有乙個三角形木板,豎直立放,上面釘著n n 1 2顆釘子,還有 n 1 個格仔 當n 5時如圖1 每顆釘子和周圍的釘子的距離都等於d,每個格仔的寬度也都等於d,且除了最左端和最右端的格仔外每個格仔都正對著最下面一排釘子的間隙。讓乙個直徑略小於d的小球中心正對著最上面的釘子在板上自由滾落,小球每碰到乙...
poj 1189 釘子和小球 一道有趣的題
一道有趣的題,不算難。題目 description 有乙個三角形木板,豎直立放,上面釘著n n 1 2顆釘子,還有 n 1 個格仔 當n 5時如圖1 每顆釘子和周圍的釘子的距離都等於d,每個格仔的寬度也都等於d,且除了最左端和最右端的格仔外每個格仔都正對著最下面一排釘子的間隙。讓乙個直徑略小於d的小...
1189 階乘分數
1189 階乘分數 基準時間限制 1 秒 空間限制 131072 kb 1 n 1 x 1 y 0,給出n,求滿足條件的整數解的數量。例如 n 2,1 2 1 3 1 6,1 2 1 4 1 4。由於數量可能很大,輸出mod 10 9 7。input 輸入乙個數n 1 n 1000000 outpu...