liu-shi-san-d
六十三(D)
考虑 \(d=1\) 的情形:假设第一次询问了 \(x\),第二次询问了 \(y<x\)。
此时我们得到第一次询问的结果,如果 \(a\) 比 \(x\) 大,则我们用 \(2\) 的代价使范围缩减到 \(n-x\);如果 \(a\) 比 \(x\) 小,则我们用 \(1\) 的代价使范围缩减到 \(x-1\),且有一个待反馈结果的询问,这个状态就类似我们执行第一次询问后的状态。
利用这种策略递归求解,设 \(f_i\) 表示 \(i\) 次询问能解决的最大 \(n\),则如果令 \(x=f_{i-1}+1,y=f_{i-2}+1\),则有 \(f_{i}=f_{i-1}+f_{i-2}+1\)。
类似地,对于 \(d>1\),\(f_i=f_{i-1}+f_{i-d-1}+1\)。
具体地,第一次我们查询 \(f_{i-1}+1\),第二次我们查询 \(f_{i-2}+1\),\(\cdots\),第 \(d+1\) 次我们查询 \(f_{i-d-1}+1\)。
此时得到第 \(1\) 次查询的结果,如果 \(a>f_{i-1}+1\),则用 \(d+1\) 次的代价将问题缩减到 \(f_{i-d-1}\)。
如果 \(a<f_{i-1}+1\),则问题类似于进行 \(d\) 次询问之后的状态,规模缩减到 \(f_{i-1}\),继续向左询问即可。
这样的询问次数在题目要求范围内。

浙公网安备 33010602011771号