Para 给出了一份对 某种神秘的记忆化搜索和错误复杂度的笛卡尔树做法 的 hack。
请求加入数据。
generator:
#include <bits/stdc++.h>
using namespace std;
#define int long long
int a[100005];
void build (int id, int l, int r) {
int mid = (l + r) / 2;
a[mid] = id;
if (l == r) return ;
build (id + 1, l, mid), build (id + 1, mid + 1, r);
}
signed main () {
freopen ("1.in", "w", stdout);
int n = 100000, Q = 100000;
printf ("%lld %lld\n", n, Q);
build (1, 1, n);
for (int i = 1; i <= n; i++) printf ("%lld ", a[i]);
for (int i = 1; i <= Q; i++) {
int l = i, r = Q - i + 1;
if (l > r) swap (l, r);
printf ("%lld %lld\n", l, r);
}
return 0;
}