Status:2166705 | 2010-04-17 22:53:50 | Accepted | 2112 | FPC | 3770 | 23856 | Skyprophet |
【题目大意】:
给你一个数列,让你动态的进行操作使之可以实现以下操作:
1、修改一个位置上数的值
2、询问区间(i,j)上第k小的值是多少?
【题目分析】:
这个题就是树套树经典中的经典了。线段树套平衡树可以做,当然为了让程序更快,这道题就应该搞成树状数组套平衡树。树状数组以其常数、方便易写成为这道题的最佳解决方案。
当然,方法其实很简单。树状数组的区间意义并没有改变,只是每个节点上都是一棵平衡树。对于Q来说,二分答案就好。
突然想起来重新写这个问题是因为看到长郡的一套题,原来的树套树测了下巨慢无比~~
所以写了这个东西,下周还会做一些有关习题。尽请关注~
P.s.我正在努力让我有写完一道题写解题报告的习惯…………
【代码】:
P.s. 173行,确实短了不少啊,而且还快了……唉~想想原来的那个200+的树套树就觉得悲剧……