1 条题解

  • 0
    @ 2026-10-18 18:26:42

    G2007 [GESP202312 二级] 小杨做题 题解

    知识点:递推、循环累加、模拟。

    解题思路

    前两天分别为a、b,后续一天为前两天之和。将每天题量累加,达到停止阈值m或完成n天时结束。

    为什么正确

    始终保存相邻两天题量并按递推生成下一天,累计值恰为已完成天数的总题量。

    易错点

    触发阈值的当天也计入总数;停止条件按题目给定的天数规则处理。

    复杂度

    时间O(n),空间O(1)。

    参考代码(C++17)

    #include<bits/stdc++.h>
    
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        long long a,b,m,n,s;
        cin>>a>>b>>m>>n;
        s=a+b;
        for(int i=3;i<=n;i++) {
            long long c=a+b;
            s+=c;
            if(c>=m)break;
            a=b;
            b=c;
        }
        cout<<s;
    }
    

    说明

    本题解为配套教学整理,非官方题解。复杂度按本页参考实现计算,题库使用6个自行生成的测试点。

    • 1

    信息

    ID
    645
    时间
    1000ms
    内存
    512MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者