P1112 区间连续段

题目描述

给你一个长度为n的数组 \(a_1, a_2, \dots a_n\)
一开始这n个元素都为0。
然后有m次操作,每次操作有两种操作类型:

  • update x y a:将区间 \([x,y]\) 范围内的元素都置为 a
  • query x y:询问区间 \([x,y]\) 范围内有多少不同的数据段。

举个例子,如果一个区间内有如下的数 \(3,3,2,2,2,1\) ,那么它有3段数据段,分别是 \(3,3\)\(2,2,2\)\(1\)

输入格式

输入的第一行包含两个整数 \(n,m(1 \le n \le 10^5, 1 \le m \le 10^5)\)
接下来 \(m\) 行每行可能是两种形式:

  • update x y a:将区间 \([x,y]\) 范围内的元素都置为 a
  • query x y:询问区间 \([x,y]\) 范围内有多少不同的数据段。

其中 \(1 \le x \le y \le n, 1 \le a \le 10^9\)

输出格式

对于每次 query 询问,输出该区间的数据段的个数。

样例输入

3 3
update 1 2 1
query 1 2
query 2 3

样例输出

1
2
posted @ 2019-11-02 22:53  problems  阅读(225)  评论(0)    收藏  举报
编辑推荐:
· 一次 .NET 性能优化之旅:将 GC 压力降低 99%
· MySQL索引完全指南:让你的查询速度飞起来
· 一个字符串替换引发的性能血案:正则回溯与救赎之路
· 为什么说方法的参数最好不要超过4个?
· C#.Net 筑基-优雅 LINQ 的查询艺术
阅读排行:
· 一次 .NET 性能优化之旅:将 GC 压力降低 99%
· 我用这13个工具,让开发效率提升了5倍!
· 32岁入行STM32迟吗?
· C#.Net筑基-泛型T & 协变逆变
· Coze工作流实战:一键生成鸡汤视频——厉害的人,早已戒掉情绪
点击右上角即可分享
微信分享提示