分析
假设我们最初有$x$个机器人,经过$n$年繁殖,最终数量为$s$
首先打表:
1. 第一年:$x+2\*x-1=3x-1$
2. 第二年:$3x-1+(2x-1)\*2-1=7x-4$
3. 第三年:$7x-4+(4x-3)\*2-1=15x-11$
4. 第四年:$15x-11+(8x-7)\*2-1=31x-26$
…
n. 第n年: $(2^{n+1}-1)x-2^{n+1}+n+2=s$
经过等式变换可得到:
$$x=\frac{s+2^{n+1}-n-2}{2^{n+1}-1}$$
直接对分子分母进行计算即可。
Python 代码
n,s=map(int,input().split())
s+=pow(2,n+1)-2-n
d=pow(2,n+1)-1
print(int(s/d))
WA点
89 95302280052044650408854013088414399641895355486