比赛场次 695
比赛名称 2025暑期集训第7场
比赛状态 已结束比赛成绩
开始时间 2025-08-11 13:00:00
结束时间 2025-08-11 17:30:00
开放分组 全部用户
组织者 syzhaoss
注释介绍 一棵大树,能走天下吗?
题目名称 Power Calculus
输入输出 pow_cal.in/out
时间限制 2000 ms (2 s)
内存限制 64 MiB
测试点数 10 简单对比
用户 结果 时间 内存 得分
Gravatar淮淮清子 AAAAAAAAAA 1.300 s 3.68 MiB 100
Gravatar20120223 AAAAAAAAAA 3.353 s 3.64 MiB 100
GravatarOIOOI AAAAAAAAAA 3.386 s 3.66 MiB 100
Gravatar李金泽 AAAAAAAAAA 3.514 s 1.62 MiB 100
Gravatarpcx AAAAAAAAAA 4.052 s 3.64 MiB 100
Gravatarhsl_beat AAAAAAAAAA 4.424 s 3.65 MiB 100
Gravatar彭欣越 AAAAAAAAAA 4.432 s 3.64 MiB 100
Gravatarzhyn AAAAAAAAAA 4.540 s 3.67 MiB 100
Gravatar会挽弯弓满月 AAAAAAAAAA 4.600 s 3.76 MiB 100
GravatarOTTF AAAAAAAAAA 4.840 s 3.66 MiB 100
Gravatarxpb AAAAAAAAAA 5.005 s 3.65 MiB 100
Gravatar李奇文 AAAAAAAAAA 5.412 s 3.68 MiB 100
GravatarRuyi AAAAAAAAAA 6.090 s 3.61 MiB 100
Gravatarxxz AATAATTAAT 14.689 s 4.06 MiB 60
Gravatar对立猫猫对立 AATTTTTTTT 24.079 s 3.44 MiB 20
Gravatar左清源 AATTTTTTTT 24.893 s 3.45 MiB 20
GravatarLikableP AATTTTTTTT 26.304 s 3.50 MiB 20
Gravatar秋_Water RRRRRRRRRR 0.024 s 3.65 MiB 0
Gravatarzz EEEEEEEEEE 1.464 s 3.54 MiB 0

3. Power Calculus

★★   输入文件:pow_cal.in   输出文件:pow_cal.out   简单对比
时间限制:2 s   内存限制:64 MiB

【题目描述】

给出正整数$n$,若只能使用乘法或除法,输出使$x$经过运算(自己乘或除自己,以及乘或除运算过程中产生的中间结果)变成$x^n$的最少步数

e.g.

从$x$开始 并重复乘以 $x$,我们可以用三十次乘法计算  $x^{31}$:

$x^2 = x * x,     x^3 = x^2 * x,     x^4 = x^3 * x,     ...,     x^{31} = x^{30} * x。$

这不是计算x 31的最短乘法序列  。有很多方法只有七个乘法。以下是其中之一:

$x^2 = x * x,     x^4 = x^2 * x^2,     x^8 = x^4 * x^4,     x^{10} = x^8 * x^2, x^{20} = x^{10} * x^{10},     x^{30} = x^{20} * x^{10},     x^{31} = x^{30}* x。$

但是,无法用更少的乘法来计算  $x^{31}$。因此,这是仅通过乘法计算$x^{31}$的最有效方法之一  。

如果也可以使用除法,我们可以找到较短的操作序列。可以通过六个运算(五个乘法和一个除法)来计算  $x^{31}$:

$x^2 = x * x,     x^4 = x^2 * x^2,     x^8 = x^4 * x^4,     x^{16} = x^8 * x^8,     x^{32} = x^{16} * x^{16},     x^{31} = x^{32} ÷ x。$

【输入格式】

若干行数据,每行一个正整数n,数据以单独成行的0结束

【输出格式】

若干行数据,对应每行输入的n所需的步数

【样例输入】

1
31
70
91
473
512
811
953
0

【样例输出】

0
6
8
9
11
9
13
12

【提示】

请不要打表,请使用搜索,暴力请剪枝(避免卡评测机)

前20%的测试点,测试点组数 <= 100,n <= 100.

前100%的测试点,测试点组数 <= 1000,n <= 1000.

【来源】

luogu & SPOJ