跳转至

ABC356B Nutrients

题目分析

Takahashi 吃了 $N$ 种食物,每种含有 $M$ 种营养素的不同量。现在给定每种营养素的最低需求,判断他是否摄取全部达标


解题思路

我们需要统计每种营养素的总摄入量,并将其与目标值对比。只要有一种营养素摄入不足,就输出 No,否则输出 Yes


实现步骤

  • 读取整数 $N$ 和 $M$。
  • 读取 $M$ 个整数作为目标需求数组 target[i]
  • 初始化一个数组 sum[] 来存每种营养素的总摄入量,初始为 $0$。定义全局数组自动实现
  • 遍历每一行食物的营养数据,累加到对应的 sum[j]
    • 对每个 $j$,执行 sum[j] += X[i][j]
  • 遍历所有 $M$ 个营养素,如果有 sum[j] < target[j],输出 No
  • 全部满足则输出 Yes

复杂度分析

  • 时间复杂度:$O(N \times M)$;
  • 空间复杂度:$O(M)$;
  • 数据范围小($N,M\le 100$),暴力处理可行。

总结

  • 本题核心在于 列累加统计
  • 遇到矩阵类数据,注意是 按列统计 而非行;
  • 明确目标是 所有营养素都达标,所以需要全体通过的判断。