跳转至

ABC274B Line Sensor

题目概述

给定一个 $H \times W$ 的网格,每个格子是 .(空)或 #(有箱子)。
现在要求你输出每一列中 # 的数量。


解题思路

  1. 网格为 $H$ 行 $W$ 列,按行输入。
  2. 对每一列 $j$,统计从第 $1$ 行到第 $H$ 行中 $C_{i,j} = \texttt{#}$ 的个数。
  3. 将每列的统计结果输出,空格隔开。

实现步骤

  • 可以按列遍历
  • 外层:从列 $j = 1$ 到 $W$。即先写 for (int j = 1; j <= W; j++)
  • 外层循环里首先初始化 $sum=0$ 准备计数。
  • 内层:从行 $i = 1$ 到 $H$。再写 for (int i = 1; i <= H; i++)
  • 判断:若 C[i][j] == '#',则当前列计数加一
  • 输出 sum 即可。

时间复杂度

  • 时间:$O(H \times W)$,需要遍历整个矩阵
  • 空间:$O(W)$,保存每列的计数

总结

  • 本题考查基础的二维数组遍历;
  • 虽然数据范围大(最多 $10^6$ 个格子),但因为只是统计字符,不涉及复杂计算,直接遍历即可通过