【悬关】倍增为何慢于二分
  • 板块学术版
  • 楼主undefined_null
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/10/29 20:53
  • 上次更新2023/11/2 10:46:59
查看原帖
【悬关】倍增为何慢于二分
240799
undefined_null楼主2023/10/29 20:53

(《算法竞赛进阶指南》P39-40)

问题:给定长度为 nn 的数列 aa,而后进行若干次询问,每次给定一个整数 TT,求出一个最大的 kk,满足∑i=1kai<=T\sum_{i=1}^{k}a_i<=T。

思路零:模拟

思路一:二分

思路二:倍增

若询问次数与 nn 相当,那么三个思路的复杂度分别为 O(n2)O(n^2)、O(nlogn)O(nlogn)、O(nlogk)O(nlogk),理论上,倍增能够应对规模各异的 kk,应是比二分快的。

可是为何我在进行对拍时发现倍增的那份程序有好几个点用时超过 1s1s,而二分则没有这样。

对拍所用代码:gen.cpp; checker.cpp

2023/10/29 20:53
加载中...