首页 > 试题广场 >

重叠的装饰

[编程题]重叠的装饰
  • 热度指数:4679 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
我们部门需要装饰墙,但是墙非常非常的长,有一千万米。我们会按顺序贴很多海报在上面,这些海报相互之间会重叠,请问下,最后还能看到哪些?(只看到一部分也算)

输入描述:
N表示N张海报
接下来每一行代表海报的左右边界(上下默认全满),Li,Ri,均为整数,大于0,小于一千万。海报按输入顺序张贴。


输出描述:
有多少张海报是可见的
示例1

输入

5
1 4
2 6
8 10
3 4
7 10

输出

4
头像 牛客题解官
发表于 2020-06-05 15:41:23
精华题解 题目难度:四星 考察点:线段树、区间覆盖、离散化 方法:线段树、区间覆盖 1.分析: 这道题是一个线段树区间覆盖类型的题目,通过题目我们知道,在贴海报的过程中,后面贴的海报会影响前面的海报,即前面的海报会被覆盖。所以这其实就是一个区间的更新,即来一个区间[l, 展开全文
头像 Teamo201909070929310
发表于 2020-08-20 17:15:03
//老老实实进行模拟贴海报的过程,res[]数组为墙体,对于第i张海报,将res[海报区间的所有整数]赋值为(i+1) //最后用set查看res数组的元素类别,这里需要考虑是否有0 import java.util.HashSet; import java.util.Scanner; publi 展开全文