/ Vijos / 题库 /

种树

种树

时间限制:1秒  内存限制:256N


【问题描述】

  某校大门外长度为 \(n\) 的马路,我们可以把马路看成一个数轴,马路的一端在数轴 \(1\) 的位置,另一端在 \(n\) 的位置。现在学校决定数轴上的某些整数点上种树。每一次可选择数轴上的一段连续的整数点上同一种类的树。要特别注意的是:每个整数点上可以种无限多棵树,也就是说,在 \(x\) 点上开始种了一棵种类为 \(1\) 的树,如果再次在该整点上中一棵种类为 \(2\) 的树,那么 \(x\) 点会有两棵不同种类树同时存在。并且没有何两次种的树是同一种类的。
  种树的过程按时间顺序给出,现在学校想随时知道:任意一个区间上能看到多少种不同种类的树。

【输入格式】

  第一行 \(n,m\) 表示道路总长为 \(n\),共有 \(m\) 个操作。接下来 \(m\) 行为 \(m\) 个操作:操作以下面两种形式给出:
  操作1:\(1\ l\ r\) 表示在 \(l..r\) 之间种上的一种树。
  操作2:\(2\ l\ r\) 表示询问 \(l..r\) 之间能见到多少种树\((l,r>0)\)。

【输出格式】

  对于每个操作2 输出一个答案

【输入输出样例】

 Input

5 4
1 1 3
2 2 5
1 2 4
2 3 5

 Output

1
2

【数据说明】

  对于 \(20\%\) 的数据:\(1≤n,m≤100\)
  对于 \(60\%\) 的数据:\(1≤n≤1000,m≤50000\)
  对于 \(100\%\) 的数据:\(1≤n,m≤50000\)

【来源】

   Mr.he

信息

ID
3148
难度
(无)
分类
数据结构 | 线段树树状数组 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
被复制
1
上传者