原题
题目大意
对于1~n个位置,对于任意一个位置i,都有一个身高为i的小矮人。有两种操作。
1 x y:将身高x,y的小矮人交换位置
2 x y:身高x到y的小矮人们所处位置是否连续
分析
关键在于如何判断是否连续。
身高x到y的小矮人的个数是固定的,若连续排列,他们所占的位置数也是固定的。
找出身高x到y的小矮人中所处位置的最大值和最小值,将y-x的值和最大值与最小值之差相比,就可判定。
将身高作为键,位置作为值,建立线段树,即可解决问题。
参考代码
|
|
吾生也有涯,而知也无涯
对于1~n个位置,对于任意一个位置i,都有一个身高为i的小矮人。有两种操作。
1 x y:将身高x,y的小矮人交换位置
2 x y:身高x到y的小矮人们所处位置是否连续
关键在于如何判断是否连续。
身高x到y的小矮人的个数是固定的,若连续排列,他们所占的位置数也是固定的。
找出身高x到y的小矮人中所处位置的最大值和最小值,将y-x的值和最大值与最小值之差相比,就可判定。
将身高作为键,位置作为值,建立线段树,即可解决问题。
|
|