vijos1448

maksyuki 发表于 oj 分类,标签:
0

描述

校门外有很多树,有苹果树,香蕉树,有会扔石头的,有可以吃掉补充体力的……
如今学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两个操作:
K=1,K=1,读入l、r表示在区间[l,r]中种上一种树,每次操作种的树的种类都不同
K=2,读入l,r表示询问l~r之间能见到多少种树
(l,r>0)

格式

输入格式

第一行n,m表示道路总长为n,共有m个操作
接下来m行为m个操作

输出格式

对于每个k=2输出一个答案

样例1

样例输入1[复制]

5 41 1 32 2 51 2 42 3 5

样例输出1[复制]

12

限制

1s

提示

范围:20%的数据保证,n,m<=100
60%的数据保证,n <=1000,m<=50000
100%的数据保证,n,m<=50000

 

题目类型:线段树

算法分析:使用“括号标记法”,即将区间的左界标识为”(”,右界表示为”)”。然后每次查询区间[a,b]的结果就是[1,b]中”(”的个数减去[1, a-1]中”)”的个数(易证)。注意要特判a = 1时的情况!!!