CF2109C (Div. 2) Hacking Numbers
First Post:
Last Update:
Word Count:
Read Time:
Page View: loading...
Last Update:
Word Count:
558
Read Time:
1 min
Page View: loading...
题意
中文简化版:
本题为交互题。
交互库保存一个隐藏的变量
,最开始保证 为 以内的整数;你需要经过若干次操作使得它变为给定的 ,保证 为 以内的整数。 如果操作失败,交互库会告知你,但是仍然消耗一次操作机会。
提交答案不消耗操作机会。
Command Constraint Result Case Update response add y
1
0
mul y
1
0
div y
divides 1
0
digit
— — 1
:这里 表示求 的 进制下的各位数字和,例如 。
- Easy:
次操作; - Medium:
次操作; - Hard:最优化操作次数。
Algo 0: 31 op
首先想到二分,考虑不断从
Algo 1: 7 op
然后考虑使用
Algo 2: 4 op
回想我们小学二年级学过的
再取一次
Algo 3: 2~3 op
注意到:
这是因为:
因此,我们只需要在最开始乘
若
否则,再加
最优性证明
容易证明,至少花费
因此,只需证,经过
首先,容易证明至少需要一次
其次,不能连用两次
再次,第一次操作不能为
最后,考虑第一次操作的类型。
由于
假设存在
综上所述,只有先乘