HDOJ 1041 Computer Transformation
题目
分类
找规律
题意
初始序列为 1
下一个序列为将 0 换为 1 0 将 1 换为 0 1
求 n 次变换后 序列中的 0 的对数模拟变换
次数 序列 0的对数 0的个数 0 1 0 0 1 0 1 0 1 2 1 0 0 1 1 2 3 0 1 1 0 1 0 0 1 1 4
题解
通项公式 为 f(n) = [2^(n-1) + (-1)^n]/3;
我们看看怎么推出上式
有题解可以看到 每轮的 0 的个数 为 2^(n-1)
由于 单个0后必有一个 1
所以 下一轮 会变成 1001 多一个 00
而 00 后必为 1
所以 下一轮 会变成 101001 多一个 00
当前 00 的个数时 上一轮单 0 的个数 即 所有 0 的个数 - 00的个数
f(n) = 2 ^ (n-1) - f(n-1)
由递推式求得
f(n) = [2^(n-1) + (-1)^n]/3
代码
点击查看 代码