求助某抽象函数的复杂度
  • 板块学术版
  • 楼主weilycoder
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/7/16 08:46
  • 上次更新2024/7/16 09:59:24
查看原帖
求助某抽象函数的复杂度
818693
weilycoder楼主2024/7/16 08:46
unordered_map<uint64_t, uint64_t> ump;
uint64_t solve(uint64_t n) {
  if (ump.count(n))
    return ump[n];
  uint64_t p = cube(n - 1);
  uint64_t c = p * p * p;
  uint64_t res = solve(c) + solve(n - c) + (n - c);
  ump[n] = res;
  return res;
}

如果提前预处理 [1,m]∩Z[1,m]\cap\mathbb{Z} 的值,单次计算 solve(n) 的时间复杂度大约是多少?占用的空间大约是多少?

这里 cube 是计算立方根的函数(不是立方),您可以将它视为 O(1)O(1) 或 O(log⁡n)O(\log n)。

也就是说,代码中 c 的值是 ⌊n3⌋3\lfloor\sqrt[3]{n}\rfloor^3.

已知 1e17 能在 1s1s 内跑完。

2024/7/16 08:46
加载中...