C++ 函数 sqrt() 的时间复杂度是多少?
本体数据量大,前缀和最大可以达到 5e3 * 1e9 的大小,而我的代码是这样的:
for (int i = 1; i <= n; ++i)
for (int j = i; j <= n; ++j) {
LL s = sum[j] - sum[i - 1];
LL r = sqrt(s);
if (r * r == s)
ans[i]++, ans[j + 1]--;
}
几乎完全依赖于 sqrt 的时间复杂度,如果是 log 级别的,也不应该只用 26ms 就跑完了最大的数据点啊?