题目名称 265. 线段覆盖
输入输出 xdfg.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 14
题目来源 GravatarBYVoid 于2009-02-13加入
开放分组 全部用户
提交状态
分类标签
线段树
分享题解
通过:142, 提交:471, 通过率:30.15%
Gravatar+1s 100 0.726 s 18.98 MiB C++
Gravatar青衫白叙 100 0.759 s 15.95 MiB C++
GravatarPurpleWonder 100 0.767 s 7.92 MiB C++
GravatarAAAAAAAAAA 100 0.778 s 6.29 MiB C++
GravatarFisher. 100 0.811 s 10.01 MiB C++
Gravatar┭┮﹏┭┮ 100 0.863 s 15.49 MiB C++
Gravatarfaraway 100 0.902 s 14.02 MiB C++
Gravatarrewine 100 0.922 s 15.57 MiB C++
Gravatar小DOTA 100 0.933 s 11.63 MiB C++
GravatarFisher. 100 0.940 s 15.57 MiB C++
关于 线段覆盖 的近10条评论(全部评论)
%%%%byvoid dalao
Gravatar青衫白叙
2017-10-22 13:45 11楼
查询可以O(1);
GravatarFisher.
2017-05-29 14:55 10楼
GravatarLOSER
2016-10-08 06:19 9楼
论超时的缘故____折腾人的快读。。。
GravatarSky_miner
2016-02-28 16:06 8楼
坑爹的内存限制。。第一次被卡MLE了!
GravatarTA
2014-11-29 13:08 7楼
1AC 线段树
记录每一个节点的maxv,minv,leftc,rightc//leftc表示他最左边的端点被覆盖的次数,rightc表示最右边
如果这个节点的maxv是0那么说明这一段全是白的
如果这个节点的minv>0那么说明这一段全是黑的
一个节点的非连续节点数=LC的+RC的(如果LC最右边和RC最左边都不为0就-1)
难得线段树可以一次写对。。好感动TAT
GravatarHouJikan
2014-09-05 21:26 6楼
发现ScanfCin的效率差太大
Gravatar超级傲娇的AC酱
2014-02-26 13:30 5楼
GravatarrpCardinal
2013-12-21 18:57 4楼
Gravatardigital-T
2013-10-31 10:00 3楼
..求解一个区间多层覆盖怎么记录...
Gravatar馒头
2013-10-18 08:51 2楼

265. 线段覆盖

★★★   输入文件:xdfg.in   输出文件:xdfg.out   简单对比
时间限制:1 s   内存限制:128 MiB

【问题描述】

有一根长度为 L 的白色条状物。有两种操作:

1.用一条长度为 T 的黑布盖住条状物的 [a, a+T] 这个区间 (0<=a, T<=L) 。

2.把某条黑布拿走。

输入 L 和 n 次操作,要你输出每次操作之后:

1.条状物上有多少个黑区间。

2.条状物上黑区间的总长度。

【输入格式】

输入文件第一行两个整数L(1<=L<=200000), n(1<=n<=200000)

以下有n行,第2--n+1行每行有3个整数m,a,T,m表示操作类型,1表示放入黑布,2表示拿走黑布,a,T表示黑布在L上的起始位置与长度,拿走的黑布保证是原来已经存在的.

【输出格式】

输出有n行,每行两个整数x,y,x表示L上的黑区间个数,y表示黑区间的总长度.

【输入样例】

20 4
1 5 3
1 7 2
2 5 3
1 16 3

【输出样例】

1 3
1 4
1 2
2 5