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

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

    题目描述

    大家发现了不远处有q只工蚁在修补被雨水破坏的蚁穴,蚁穴破损的部分可以从1到n编号,第i只工蚁负责修复编号Li到Ri的部分,请你把横线处修改为正确的代码,输出表示只被覆盖到一次的点数的前缀和数组吧。

    #include <iostream>
    using namespace std;
    int n, q;
    int d[10005], cnt[10005], c1[10005];
    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] == 1)
    			——————————
    		else
    			——————————
    		cout << c1[i] << " ";
    	}
    	return 0;
    }

    输入

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

    输出

    n-1个空格隔开的整数,表示只被覆盖到一次的点数的前缀和数组。

    样例输入

    3 2
    1 2
    2 3

    样例输出

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