202308F 电脑中了满屏粉兔病毒

· · 题解

Source & Knowledge

2023 年 08 月语言月赛,由洛谷网校入门计划/基础计划提供。

考察数组、循环。

文字题解

在方格中枚举,假设枚举到位置为 (i,j) 的粉兔。

我们依次向上、下、左、右四个方向进行枚举。

枚举 (i,j) 以上的格点,就是要保持列号不变,行号变化,即遍历 (1\sim i-1,j)

for(int k = 1; k < i; k++) {
    //do sth. with a[k][j]
}

判断这些格点,有没有异性粉兔,如果没有,计数器加一。

与上类似,向下枚举就是要遍历 (i+1 \sim r, j)

判断这些格点,有没有异性粉兔,如果没有,计数器加一。

与上下不同的是,向左的枚举,行号不变,变化的是列号。遍历 (i,1 \sim j-1)

判断这些格点,有没有异性粉兔,如果没有,计数器加一。

与向左类似,遍历 (i,j+1\sim c)

判断这些格点,有没有异性粉兔,如果没有,计数器加一。

对上下左右四个方向均判断完后,如果计数器的值大于等于 3,就说明这个格点 (i,j) 的粉兔是合格的粉兔,答案加一,最后输出答案即可。

视频题解