超级玛丽题目重做! 题意见http://blog.csdn.net/houserabbit/article/details/37968189
新思路:
如果我们将原串数字按大小排序 每次扫描到这个数字就在它对应的位置上+1
并且将询问按h排序 依次做每个询问
那么题目就变成了 对于每个询问 将原串数字一个一个的放进去直到h的大小 然后求R前1的个数减去L-1前1的个数
那么就可以使用树状数组
PS:
上面的提交是使用树状数组的 下面是时候划分树的
相比之下 本次的思路使速度快了3倍左右
使用树状数组的做法的复杂度为nlogn+mlogm+nlogn+2mlogn 即 nlogn 级别
使用划分树的做法的复杂度为nlogn+m(logn)^2 即 n(logn)^2 级别
而且编程复杂度也明显小于划分树
时间: 2024-11-06 02:50:43