题目描述
阿克曼(Ackermann)函数 A(m,n) 中,m,n 定义域是非负整数,函数值定义为:
- m=0 时:akm(m,n)=n+1。
- m>0 且 n=0 时:akm(m,n)=akm(m−1,1)。
- m>0 且 n>0 时:akm(m,n)=akm(m−1,akm(m,n−1))。
33DAI 最近学了并查集,同时使用路径压缩和启发式合并之后,并查集的每个操作平均时间仅为 O(α(n)),其中 α 为阿克曼函数的反函数,即为最大的整数 m 使得 akm(m,m)⩽n。
输入 n,请输出 α(n) 的值,即满足 akm(m,m)≤n 的最大的 m 值。
输入格式
第一行为一个整数 T,表示数据组数。
接下来 T 行,每行为一个整数 n。
输出格式
输出 T 行,即每个 n 对应的 α(n) 的值。
4
1
3
33
333
0
1
2
3
数据规模与约定
对于 100% 的数据,1≤T≤106,1≤n≤1018。
- 子任务 1(10 分):保证 T≤1000 且 n≤10.
- 子任务 2(20 分):保证 T≤1000 且 n≤100.
- 子任务 2(30 分):保证 T≤1000.
- 子任务 4(40 分):没有特殊限制.