#3965. ♞ 牛局长的“迷你马”实验-中
♞ 牛局长的“迷你马”实验-中
♞ 牛局长的“迷你马”实验
(兔猫信奥学院 · 牛局长 × 闪电 × 豹警官 × 朱迪 × 尼克)
故事背景
安全局的 牛局长 带来一块 $n\times n$ 的国际象棋棋盘和一枚小巧的骑士棋子(学院同学昵称“迷你马”)。骑士起始于格子 $\bigl(row,;column\bigr)$,接下来要随机地走 $k$ 步:
- 每一步从 8 种“日”字走法中 等概率 任选一种,即便它会跳出棋盘。
- 一旦骑士跳出边界,试验立即停止;否则继续,直到走满 $k$ 步。
牛局长要求统计:
试验结束时骑士仍然留在棋盘上的概率。
闪电负责摇骰子,朱迪和尼克记录结果,豹警官在一旁护卫——真正的计算任务,就交给你啦!
题目描述
给定整数
- 棋盘边长 $n$($1\le n\le25$),
- 试验步数 $k$($0\le k\le100$),
- 起点坐标 $\bigl(row,;column\bigr)$($0\le row,;column<n$)
计算骑士在走完 $k$ 步后仍位于棋盘内的概率。误差 $\le10^{-5}$ 视为正确。
输入格式
n k
row column
输出格式
probability
probability
—— 双精度结果,建议printf("%.10f", …)
。
样例
输入 | 输出 | 说明 |
---|---|---|
3 2 0 0 |
0.0625 |
详见题面示例 |
1 0 0 0 |
1.0 |
不移动即留在棋盘 |
算法提示
动态规划 / 概率转移:
dp[s][i][j]
= 骑士走完s
步后位于(i,j)
的概率。- 转移:
dp[s+1][x][y] = Σ dp[s][i][j] / 8
,枚举 8 个合法来源格。 - 答案
Σ dp[k][i][j]
,即第k
步全部在盘内的概率。 可滚动数组将空间降至O(n²)
;总复杂度O(k·n²)
。