最新公告
  • 欢迎您光临信息学奥赛网,一个优质的信息学编程题库和信息学编程学习资源专业网站。欢迎加入VIP
  • 问题 BK: L9-6 差分进阶 - 练习7

    正文概述 网友投稿   2026-01-22 11:17:24  

    题目描述

    大家发现了不远处,有q只工蚁在修补被雨水破坏的蚁穴,蚁穴破损的部分可以从1到n编号,第i只工蚁负责修复编号Li到Ri的部分,请你编写一个程序,计算一下去掉一只工蚁之后,剩下的q-1只工蚁最多能修复的破损部分的数量。

    #include <iostream>
    using namespace std;
    int n, q;
    int d[10005], cnt[10005], c1[10005], tot, Min;
    int L[5005], R[5005];
    int main()
    {
        cin >> n >> q;
        for (int i = 1; i <= q; i++)
        {
            cin >> L[i] >> R[i];
            d[L[i]]++;
            d[R[i] + 1]--;
        }
        for (int i = 1; i <= n; i++)
        {
            cnt[i] = cnt[i - 1] + d[i];
            if (cnt[i] > 0)
            {
                tot++;
            }
            if (cnt[i] == 1)
            {
                ——————————
            }
            else
            {
                ——————————
            }
        }
        Min=tot;
        for(int i=1;i<=q;i++)
        {
            ————————————————
        }
        cout<<tot-Min;
        return 0;
    }

    输入

    第一行两个整数n和q。(1≤n≤10000,1≤q≤5000) 接下来q行,每行两个整数,第i+1行的两个整数分别表示Li和Ri。

    输出

    一个整数,表示剩下的q-1只工蚁最多能修复的破损部分的数量。

    样例输入

    4 3
    1 1
    2 2
    3 4

    样例输出

    3
    信息学奥赛网,一个优质的源码资源平台!
    信息学奥赛网 » 问题 BK: L9-6 差分进阶 - 练习7