题解:P8770 [蓝桥杯 2022 省 A] 填空问题

· · 题解

题解:P8770 [蓝桥杯 2022 省 A] 填空问题

第一题

1 张纸分割为 2022 列的独立二维码,每次只能裁 1 张纸,求最少裁剪次数。

计算过程

总裁剪次数 = 边缘裁剪次数 + 内部分割次数

代入题目参数 n = 20 , m = 22

总次数 = 4 + ( 20 \times 22 - 1 ) = 443

算得答案为 443

第二题

1. 每次可放 $1$ 个棋子,或同一行连续 $2$ 个空位放 $2$ 个棋子; 2. 放满棋盘的一方输; 3. 小蓝先手,双方均采取最优策略。 判断 $4$ 种初始局面的胜负。 **解题思路** 参考题解的核心是**后手的最优应对策略**,针对每种初始局面,分析小乔如何通过操作让小蓝陷入必败态。 ### 情况一 小乔在第一行第 $3$ 格放棋,使第一行变为 `XOXO` 。后续无论小蓝操作第一行还是第二行,小乔都能通过对应策略让小蓝被迫放满棋盘,结果为 `L`。 ### 情况二 小乔直接放满第一行剩余空位。第二行剩 $4$ 个空位,小乔保持 “小蓝放 $1$ 个则放 $2$ 个,放 $2$ 个则放 $1$ 个” 的节奏,让小蓝收尾,结果为 `L`。 ### 情况三 小乔在第一行第 $4$ 格放棋,使第一行变为 `OXOX`,情况等价于情况一,复用应对策略,结果为 `L`。 ### 情况四 第一行仅剩第 $1$、$4$ 格,无法放连续 $2$ 子。小蓝先手占据优势,引导小乔陷入必败态,结果为 `V`。 最终答案为 `LLLV`。 ## 正确代码 ```cpp #include<iostream> using namespace std; int main() { string ans [] = { "443", // 双引号中替换为 A 题的答案 "LLLV", // 双引号中替换为 B 题的答案 }; char T; cin >> T; cout << ans[T - 'A'] << endl; return 0; }