|
@@ -61,7 +61,7 @@ $2^{i+1}$ 为周期的,可以存到一个 $2^{i+1}$ 位的二进制数里面
|
|
考虑两种情况的阈值 $t$,对于 $i > t$ 按第一种情况做,其他按第二种情况做。
|
|
考虑两种情况的阈值 $t$,对于 $i > t$ 按第一种情况做,其他按第二种情况做。
|
|
时间代价大概可以写成
|
|
时间代价大概可以写成
|
|
|
|
|
|
-$$\\sum\_{i = t + 1}^{29} \\frac{nq}{2^{i+1}} +
|
|
|
|
|
|
+$$\\sum\_{i = t + 1}^{\\log\_2 \\max a\_i} \\frac{nq}{2^{i+1}} +
|
|
\\sum\_{i = 0}^{t} \\frac{2^{i+1}(n+q)}{w} \\approx
|
|
\\sum\_{i = 0}^{t} \\frac{2^{i+1}(n+q)}{w} \\approx
|
|
\\frac{nq}{2^{t+1}} + \frac{2^{t+2}(n+q)}{w}$$
|
|
\\frac{nq}{2^{t+1}} + \frac{2^{t+2}(n+q)}{w}$$
|
|
|
|
|
|
@@ -70,6 +70,7 @@ $$\\sum\_{i = t + 1}^{29} \\frac{nq}{2^{i+1}} +
|
|
赛后才想到可以胡乱试一些 $t$ 值的 qwq。
|
|
赛后才想到可以胡乱试一些 $t$ 值的 qwq。
|
|
|
|
|
|
注意为了达到这个复杂度,不能每次都用 `bitset<len>` (`len` 是 $2^{t+1}$),
|
|
注意为了达到这个复杂度,不能每次都用 `bitset<len>` (`len` 是 $2^{t+1}$),
|
|
|
|
+不然根号里面应该会多出一个 $\\log\_2 \\max a\_i$。
|
|
但是 C++ template 的语义又要求尖括号里面的那个数必须在编译期确定,
|
|
但是 C++ template 的语义又要求尖括号里面的那个数必须在编译期确定,
|
|
所以这里通过 `fuck<t>` 调用 `fuck<t-1>` 这样的模板元编程 (TMP)
|
|
所以这里通过 `fuck<t>` 调用 `fuck<t-1>` 这样的模板元编程 (TMP)
|
|
技巧实现对 $i \leq t$ 的情况的处理。为了<del>毒瘤人</del>展示这种写法,
|
|
技巧实现对 $i \leq t$ 的情况的处理。为了<del>毒瘤人</del>展示这种写法,
|