2 条题解

  • 0
    @ 2026-5-29 21:22:26

    确定块长 BB,跑个暴力,求 n=B,2×B,...n = B,2 \times B,...ilog2i\sum_i \log_2 i 的答案,打个表出来。

    然后查表,暴力算散块,再用换底公式把 kk 换成底,就行了。复杂度 O(B)O(B)

    实测 BB5×1055 \times 10^5 可行。

    代码不敢放了,太大了。

    • 0
      @ 2026-5-20 16:58:35

      用 Stirling 公式求近似值

      (n!)k进制(n!)_{k进制} 的位数=logk(n!)+1

      ≈ logk(sqrt(2πn)*(n/e)^n)+1

      = logk( sqrt(2πn))+log[(n/e)^n]+1

      =1/2*logk( 2πn)+nlog(n/e)+1

      =0.5*logk ( 2πn)+nlog(n/e)+1

      =0.5*logk ( 2πn)+nlog(n)-nlog(e)+1

      PS:pi=acos(-1.0),e=exp(1)

      PS2:eps的存在是为了防止n=2,k=2这样刚好的情况出现,这个时候向上取整要多取1位

      斯特林公式可以求解 n! 的近似解,对于较大的 n 数值是比较准确的。

      • 1

      信息

      ID
      732
      时间
      1000ms
      内存
      256MiB
      难度
      8
      标签
      (无)
      递交数
      19
      已通过
      6
      上传者