题解:P8689 [蓝桥杯 2019 国 A] 填空问题
发表于 | 更新于 | 题解 | 题解 题解:P8689 [蓝桥杯 2019 国 A] 填空问题
思路
A
由于数据规模不大($30 \times 50 = 1500$ 个字符),我们可以采用暴力枚举的方法:
垂直方向:对每一行 $i$,枚举所有可能的三个列位置($j_₁ < j_₂ < j_₃$),检查字符是否满足 $mat_{i, j_1} < mat_{i, j_2} < mat_{i, j_3}$。
水平方向:对每一列,枚举所有可能的三个行位置($i_₁ < i_₂ < i_₃$),检查字符是否满足 $mat_{i_1, j} < mat_{i_2, j} < mat_{i_3, j}$。
从左上至右下:对于每条斜线(行索引减去列索引为常数),枚举三个点,按列排序后检查字符是否递增。
从左下至右上:对于每条斜线(行索引加上列索引为常数),枚举三个点,分别按列排序和按行排序检查字符是否递增。
代码:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 ...