2013年10月2日

BZOJ1901 - Dynamic Rankings(树状数组套主席树)

摘要: 题目大意给定一个有N个数字的序列,然后又m个指令,指令种类只有两种,形式如下:Q l r k 要求你查询区间[l,r]第k小的数是哪个C i t 要求你把第i个数修改为t题解动态的区间第k小,如果还是按照静态的主席树做的话,每次修改需要对n个线段树进行修改,这样显然会TLE,所以我们需要用树状数组,这样每次只需要对logn颗线段树修改即可,修改的时间复杂度为logn^2,询问的时间复杂度为logn^2,空间复杂度为nlogn^2还有一种空间复杂度为nlogn+mlogn^2的方法,就是先建立n颗静态的主席树,空间复杂度为nlogn,然后再更新的时候用树状数组套线段树,这样空间复杂度为mlogn 阅读全文

posted @ 2013-10-02 16:45 仗剑奔走天涯 阅读(325) 评论(0) 推荐(0) 编辑

导航