P2327 [SCOI2005] 扫雷 解题笔记
感觉不止黄
设 \(dp[i][j][k]\) 为当前位置为 \(i\),当前位置是不是雷(\(j\) 为 \(0\) 则不是,否则是),以及下一个位置是否需要放雷(用 \(k\) 表示)
-
则如果 \(a[i] = 0\)
- \(dp[i][0][0] = dp[i - 1][0][0]\)
-
如果 \(a[i] = 1\)
- \(dp[i][0][1] = dp[i - 1][0][0]\)
- \(dp[i][0][0] = dp[i - 1][1][0]\)
- \(dp[i][1][0] = dp[i - 1][0][1]\)
-
如果 \(a[i] = 2\)
- \(dp[i][0][1] = dp[i - 1][1][0]\)
- \(dp[i][1][0] = dp[i - 1][1][1]\)
- \(dp[i][1][1] = dp[i - 1][0][1]\)
-
如果 \(a[i] = 3\)
- \(dp[i][1][1] = dp[i - 1][1][1]\)
初始 \(dp[0][0][0] = dp[0][0][1] = 1\)
答案是 \(dp[n][0][0] + dp[n][1][0]\)

浙公网安备 33010602011771号