Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:zju2112那个题有人0。03s过的。。到底是什么样的算法 啊?In Reply To:Re:zju2112那个题有人0。03s过的。。到底是什么样的算法 啊? Posted by:atlas_of_rruucc at 2004-11-25 12:25:34 算法主要如下(树套树): 1、利用线段树对区间进行划分,在每个区间中建一棵平衡树,插入相应的元素(时间 N(logN)^2) 2、对于每次修改操作,在区间树(线段树)中进行查找,在查找过程中,对相应的区间,删除原有的数,插入新的元素(时间 M(logN)^2) 3、对于每次查询操作,先二分答案,再在区间树(线段树)上查找“查询区间”,对于每一个相应的区间进行二分查找,计算在查询区间中所有小于等于当前二分结果的数的个数,再进行二分(时间 M(logN)^3) 所以总时间O(N(logN)^2+M(logN)^3) 因为这个时间复杂度只是个粗略的估计,所以实际花费时间不会这么大。 Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator