小编jem*_*uel的帖子

std :: vector插入的摊销分析

我们如何分析std :: vector中后面的插入(push_back)?它的摊销时间是每次插入O(1).特别是在史蒂芬牛逼Lavavej在Channel9的视频,并在此(17:42以后),他说,以获得最佳性能微软的这个方法的实现由大约1.5增加了向量的能力.

这个常数如何确定?

c++ algorithm stl stdvector amortized-analysis

17
推荐指数
2
解决办法
6349
查看次数

UVA - 1394:并且有一种算法

这个问题的链接是UVA - 1394:还有一个.
朴素算法是扫描整个数组并在每次迭代时标记第k个元素,最后停止:这需要O(n ^ 2)时间.
我已经搜索了另一种算法并且遇到了一个中文博客,该博客指出我使用惰性传播将树分割为O(N lgN)时间的解决方案.
在研究了分段树后,我尝试形成一个O(N lgN)时间的算法,但无济于事.


我的问题是:
1.是否可以使用分段树来获得所需的运行时间?
2.如果是,请告诉我如何使用它们.
3.分段树和"zkw"分段树是一样的吗? - 他在博客中提到了zkw段树.
更新:以上问题是约瑟夫斯问题的一个例子.

algorithm data-structures segment-tree josephus

1
推荐指数
1
解决办法
786
查看次数