1 条题解

  • 0
    @ 2026-6-19 10:30:42

    📝 题目大意

    给定 NN 道题目的分值 S1,S2,,SNS_1, S_2, \ldots, S_N 以及一个阈值 XX,求所有分值不超过 XX(即 SiXS_i \leq X)的题目分值之和。

    💡 解题思路

    1. 题目分析NN 极小(N8N \leq 8),SiS_iXX 的范围也很小(100675100 \sim 675),直接模拟即可,没有任何性能压力。
    2. 算法推导
      • 读入 NNXX,初始化 sum = 0
      • 遍历 NN 次,每次读入一个分值 ss
        • sXs \leq X,则 sum += s
      • 最后输出 sum
    3. 边界与细节
      • 当所有 SiS_i 都大于 XX 时,和为 00(如样例 3),需要正确处理。
      • Si=XS_i = X 时,该分值应被计入(条件为 \leq,而非 <<)。

    ⏱️ 复杂度分析

    • 时间复杂度O(N)O(N),仅需遍历一次数组。
    • 空间复杂度O(1)O(1),仅使用常数个变量。

    💻 标准代码 (C++)

    #include <iostream>
    using namespace std;
    
    int main() {
        int N, X;
        cin >> N >> X;           // 读入题目数量 N 和阈值 X
    
        int sum = 0;             // 累计和,初始为 0
        for (int i = 0; i < N; i++) {
            int s;
            cin >> s;            // 读入第 i 题的分值
            if (s <= X) {        // 若分值不超过阈值
                sum += s;        // 累加
            }
        }
    
        cout << sum << endl;     // 输出答案
        return 0;
    }
    
    • 1

    信息

    ID
    747
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    (无)
    递交数
    1
    已通过
    1
    上传者