题意:

有一个01串,每一步都会将所有的0变为10,将所有的1变为01,串最开始为1.

求第n步之后,00的个数

分析:

刚开始想的时候还是比较乱的,我还纠结了一下000中算是有1个00还是2个00

最终想明白后,并不会出现这样的子串。

总结了几个要点:

  • 第n步之后,串的长度为2n,且0和1的个数相等,分别为2n-1
  • 1经过两步变化为1001,所以每个1经过两步变化就会得到一个00,而且这个00分别被左右两边一个1包围着,不会与其他数字凑出额外的00
  • 0经过两步变化为0110,所以00就会变成01100110,这样00变化两次仍然还有00

最终得到结论:

  令F(n)为n次变化之后串中00的个数,则有递推关系F(n+2) = F(n)(两次变化前00的个数) + 2n-1(两次变化前1的个数)

因为n可能有1000那么大,所以要用高精度。

 #include <iostream>
#include <cstdio>
using namespace std; int A[][], B[][]; int main()
{
A[][] = A[][] = ;
for(int i = ; i <= ; i++)
for(int j = ; j < ; j++)
{
A[i][j] += A[i-][j] + A[i-][j];
B[i][j] += B[i-][j] + A[i-][j];
A[i][j+] += A[i][j] / ; A[i][j] %= ;
B[i][j+] += B[i][j] / ; B[i][j] %= ;
} int n;
while(scanf("%d", &n) == )
{
int i;
for(i = ; i > && B[n][i] == ; i--);
printf("%d", B[n][i]);
for(i--; i >= ; i--) printf("%04d", B[n][i]);
printf("\n");
} return ;
}

代码君

UVa 1647 (递推) Computer Transformation的更多相关文章

  1. UVa 12034 (递推) Race

    题意: 有n个人赛马,名次可能并列,求一共有多少种可能. 分析: 设所求为f(n),假设并列第一名有i个人,则共有C(n, i)种可能,接下来确定后面的名次,共有f(n-1)种可能 所以递推关系为: ...

  2. UVa 580 (递推) Critical Mass

    题意: 有两种盒子分别装有铀(U)和铅(L),现在把n个盒子排成一列(两种盒子均足够多),而且要求至少有3个铀放在一起,问有多少种排放方法. 分析: n个盒子排成一列,共有2n中方案,设其中符合要求的 ...

  3. UVa 1452 递推 Jump

    约瑟夫变形,先计算出3个数时,最后三个数字的编号. 然后以这三个数为起点,就可以递推出n个数对应的最后三个数字的编号. 递推公式都是一样的. #include <iostream> #in ...

  4. UVa 1646 (递推 JAVA大数) Edge Case

    题意: 有n个点围成一圈,这n个点的匹配就是没有公共点的边集(这些边只能连接一圈中相邻的两点),求所有匹配的个数. 额,我不会分析..=_=|| 算了几个数,找找规律发现它满足斐波那契数列的递推关系, ...

  5. UVa 1638 (递推) Pole Arrangement

    很遗憾,这么好的一道题,自己没想出来,也许太心急了吧. 题意: 有长度为1.2.3...n的n个杆子排成一行.问从左到右看能看到l个杆子,从右往左看能看到r个杆子,有多少种排列方法. 分析: 设状态d ...

  6. UVa 1645 (递推) Count

    题意: 有多少个n个节点的有根树,满足每层节点的子节点个数相同,输出该数目除以1e9+7的余数. 分析: 这种题目就属于那种,看起来很高冷,读完题更高冷.想了N久想不出来,一搜题解,卧槽,这么sb的题 ...

  7. UVA 11000- Bee 递推

    In Africa there is a very special species of bee. Every year, the female bees of such species give b ...

  8. UVa 10520【递推 搜索】

    UVa 10520 哇!简直恶心的递推,生推了半天..感觉题不难,但是恶心,不推出来又难受..一不小心还A了[]~( ̄▽ ̄)~*,AC的猝不及防... 先递推求出f[i][1](1<=i< ...

  9. ACM学习历程—HDU1041 Computer Transformation(递推 && 大数)

    Description A sequence consisting of one digit, the number 1 is initially written into a computer. A ...

随机推荐

  1. WPFMediaKit照相功能

    最近写的一个WPF照相功能,往各位吐槽,提供优化 在WPF 设计器中添加如下代码 xmlns:wpfmedia="clr-namespace:WPFMediaKit.DirectShow.C ...

  2. [原创汉化]linux前端神器 WebStorm8 汉化

    只汉化了linux版本 因为linux的工具没win多 不过汉化应该都通用的,自行尝试下. 汉化的不是很完全.有时间放出完全版本来.汉化是个体力活 转载随易,汉化不易,且转且注明 截图: http:/ ...

  3. EntityFrame6在本地可以正常使用,部署到IIS后报异常(Additional information: The underlying provider failed on Open.)

    异常详细:An exception of type 'System.Data.Entity.Core.EntityException' occurred in EntityFramework.SqlS ...

  4. TensorFlow 基本使用

    使用 TensorFlow, 你必须明白 TensorFlow: 使用图 (graph) 来表示计算任务. 在被称之为 会话 (Session) 的上下文 (context) 中执行图. 使用 ten ...

  5. 【Asp.net MVC ---杂七杂八】

    @RenderSection 母模板:_mainLayout.cshtml <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitio ...

  6. ECMALL目录结构设置与数据库表

    [Ecmall]ECMALL目录结构设置与数据库表   最近在做ecmall的开发,ecmall在开源方面还有待进步啊,官方没有提供开发文档,也没有关于系统架构组织的贡献,使用者都要自己从0开始,官方 ...

  7. LightOj 1065 - Number Sequence (矩阵快速幂,简单)

    题目 和 LightOj 1096 - nth Term 差不多的题目和解法,这道相对更简单些,万幸,这道比赛时没把模版给抽风坏. #include<stdio.h> #include&l ...

  8. [STL]算法的泛化过程

    “选择了错误的算法,便注定了失败的命运”.最近对这句话感触颇深,经常因为一开始思路错误,修改半天,到头来却都是无用功,所以学好算法势在必行. 算法的泛化过程 如何设计一个算法,使他适用于任何(大多数) ...

  9. Oracle 6 - 锁和闩 - 并发问题和隔离级别

    并发带来的问题 1.脏读dirty read 脏读的问题是transaction读到了没有被提交的数据.例如,T1更新了data1,还没提交,这时T2读取了更新后的data1, 用于计算和更新别的值, ...

  10. CLR 读书笔记

    http://www.cnblogs.com/wang_yb/tag/CLR%20via%20C%23%E7%AC%94%E8%AE%B0/