1 条题解
-
0
自动搬运
来自洛谷,原作者为

SunnyLi
大切な人と、いつかまた巡り会えますように搬运于
2025-08-24 22:40:52,当前版本为作者最后更新于2023-04-22 08:18:45,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
看到几个大佬的题解,深感数学不行。本蒟蒻就来发一个小学生都能看懂的找规律题解。
思路
我们假设开始时有 个机器人。我们记 为 年后的机器人个数,然后我们开始尝试前几项:
$$\begin{aligned} f(1) &= t+(2t-1) &= 3t-1 \\ f(2) &= 3t-1+(2(2t-1)-1) &= 7t-4 \\ f(3) &= 7t-4+(2(4t-3)-1) &= 15t-11 \\ f(4) &= 15t-11+(2(8t-7)-1) &= 31t-26 \\ f(5) &= 31t-26+(2(16t-15)-1) &= 63t-57 \\ \cdots \end{aligned} $$我们先看结果含 的一次项:
取他们系数的差可以发现,差的数列为:
又因为 ,我们记 为一次项系数, 为过去的时间,可以得到以下关系:
接下来看常数项:
取差:
有没有觉得很眼熟,这就是一次项系数的规律。
所以我们记 为常数项, 为所过的时间,可以得到以下关系:
当然 是特例,。
现在我们来计算一下 的通项公式:
$$\begin{aligned} B(x) &= \sum^{x}_{i=1}A(i-1)\\ &= A(0)+A(1)+\cdots+A(x-1)\\ &= (2^1-1)+(2^2-1)+\cdots+(2^{x}-1)\\ &= (2^{x+1}-2)-x\\ \end{aligned} $$所以基本上就大功告成了!
所以 年后的机器总数为:
$$\begin{aligned} s &= A(n)t+B(n)\\ &= (2^{n+1}-1)t-[(2^n-2)-n]\\ &= 2^{n+1}t-t+n-2^{n+1}+2\\ &= (2^{n+1}-1)(t-1)+t+1\\ \end{aligned}$$把它化简表示为 的函数形式,易得
最后看到样例二的那一大串数字 ,我们肯定要用高精度。作为一个蒟蒻,高精度肯定用 Python 啦!
AC 代码
#Python代码 from math import pow n,s = input().split(" ") n,s = int(n),int(s) print(str(int((s-n-1)/(int(pow(2,n+1))-1)+1)))
- 1
信息
- ID
- 5942
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者