2 条题解
-
1
Standard Solution.
若某个 01 串 不满足第二个条件:
$$A_1\sharp(A_2\sharp(A_3\sharp(\cdots\sharp(A_{N-1}\sharp A_N))))=0 $$$$A_2\sharp(A_3\sharp(\cdots\sharp(A_{N-1}\sharp A_N)))=0\ (A_1=1) $$$$A_3\sharp(\cdots\sharp(A_{N-1}\sharp A_N))=0\ (A_2=1) $$因此只有 不满足第二个条件。很明显, 同时也不满足第一个条件,所以第二个条件实际上是多余的。
对于第一个条件,设答案为 :
- 如果 ,那么一定满足条件,共有 个合法 01 串;
- 如果 ,那么需要有 $((((A_1\sharp A_2)\sharp A_3)\sharp\cdots)\sharp A_{N-2})\sharp A_{N-1}=0$,共有 个合法 01 串。
结合 ,我们得到了 的递推公式:
$$f(N)=\begin{cases}1,&N=1\\2^N-f(N-1),&N\ge 2\end{cases} $$由数学归纳法即可证明通项公式。
-
0
Accepted Contest Solution (With Syntax Fixes).
Source: http://8.136.99.126/record/67ff11b57aadac7b413bd2ff
令 ,则 ,。
即如果 状态保持 ;如果 状态变为 。
定义 ,我们需要统计 的串的个数。
定义 为从初始状态 出发,经过长度为 的 01 串最终状态为 的串的个数。
(显然),(,只有 可以使 )。
考虑 ,从初始状态 出发,经过长度为 的 01 串 。我们讨论串的第一位 的两种情况:
第一位为 :
- 初始状态 1 经 得到 。
- 此时余下的串 长度为 ,问题变为「从状态 出发读入 位 01 串,使最终状态为 」。
- 这种情况的串数为 。
第一位为 :
- 初始状态 经 得到 。
- 接下来读入 时,由于当前状态为 ,有 。
且无论 取 或 (即有 种选择),状态都变为 。 - 此后余下的串 长度为 ,要求从状态 出发最终状态为 ,对应的串数为 。
- 综上,这种情况的串总数为 。
两类情况互不重叠且覆盖所有长度为 的 01 串,因此 。
- 1
信息
- ID
- 145
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 7
- 标签
- 递交数
- 6
- 已通过
- 3
- 上传者