最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 问题 AM: L5-3 分段程序代码技巧-练习9

    正文概述 网友投稿   2026-01-22 10:21:27  

    题目描述

     代码改错: 对n棵树(n<100),有q次操作,每次把L到R之间的所有树砍掉,请问最后还剩几棵树。 例如n=5,q=3。第一次L=1,R=3。砍掉1、2、3,还剩下4、5;第二次L=5,R=5。 砍掉5,还剩下4;第三次L=2,R=3。砍掉2、3,还剩下4;最终还剩下1棵树。  

    #include <iostream>
    using namespace std;
    int main()
    {
        int n, q, l, r, a[100], sum = 0;
        cin >> n >> q;
        for (int i = 1; i <= n; i++)
        {
            a[i] = 1;
        }
        for (int i = 1; i <= q; i++)
        {
            cin >> l >> r;
            for (int j = l; j <= r; j++)
            {
                a[i] = 0;
            }
        }
        for (int i = 1; i <= n; i++)
        {
            sum += a[i];
        }
        cout << sum << endl;
        return 0;
    }

    输入

    第一行输入n、q,分别表示n棵树和q次操作。接下来的q行,每行输入两个数,L和R,表示每次把L到R之间的所有树砍掉。

    输出

    一个整数,表示最后还剩几棵树

    样例输入

    5 3
    1 3
    5 5
    2 3

    样例输出

    1

    提示

    信息学奥赛网,一个优质的源码资源平台!
    信息学奥赛网 » 问题 AM: L5-3 分段程序代码技巧-练习9