24h購物| | PChome| 登入
2012-06-13 21:46:00| 人氣1,568| 回應0 | 上一篇 | 下一篇

[UVA][DP] 10081 - Tight Words

推薦 0 收藏 0 轉貼0 訂閱站台

Problem B: Tight words

Given is an alphabet {0, 1, ... , k}, 0 <= k <= 9 . We say that a word of length n over this alphabet is tight if any two neighbour digits in the word do not differ by more than 1.

Input is a sequence of lines, each line contains two integer numbers k and n, 1 <= n <= 100. For each line of input, output the percentage of tight words of length n over the alphabet {0, 1, ... , k} with 5 fractional digits.

Sample input

4 1
2 5
3 5
8 7

Output for the sample input

100.00000
40.74074
17.38281
0.10130


#include <stdio.h>

int main() {
int k, n;
while(scanf("%d %d", &k, &n) == 2) {
double dp[101][10] = {};
int i, j, l;
for(i = 0; i <= k; i++)
dp[1][i] = (double)100/(k+1);
for(i = 1; i < n; i++) {
for(j = 0; j <= k; j++) {
for(l = -1; l <= 1; l++) {
if(j+l >= 0 && j+l <= k) {
dp[i+1][j+l] += dp[i][j]/(k+1);
}
}
}
}
double ans = 0;
for(i = 0; i <= k; i++)
ans += dp[n][i];
printf("%.5lf\n", ans);
}
return 0;
}
 

台長: Morris
人氣(1,568) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: UVA |
此分類下一篇:[UVA][最大連續和] 507 - Jill Rides Again
此分類上一篇:[UVA][幾何] 184 - Laser Lines

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文