题目:初始给你一个1,然后每一次1变成01,0变成10求变化n步后,有多少个00。

分析:数学题。我们观察变化。

00 -> 1010 出现 10、01

01 -> 1001 出现 10、00、01

10 -> 0110 出现 01、11、10

11 -> 0101 出现 01、10

仅仅有01下一步会生成00,可是00、01、10、11都会生成01。每个1都会生成01,而00也能够生成01,

由此分成两种情况计算;设O(n)是变化n步后1的个数。Z(n)是变化n步后生成的00的个数。有结论:

Z(n)= Z(n-2)+ O(n-2)。O(n)= 2^(n-1){不管0、1都会生成0与1。所以是位数的一半}

说明:数据较大,用数组模拟大整数运算。

#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>      using namespace std;    int O[1010][100];
int Z[1010][100];int main(){memset( O, 0, sizeof(O) );memset( Z, 0, sizeof(Z) );O[0][0] = O[1][0] = 1;for ( int i = 2 ; i < 1001 ; ++ i ) for ( int k = 0 ; k < 100  ; ++ k ) {O[i][k] += O[i-1][k] + O[i-1][k];Z[i][k] += O[i-2][k] + Z[i-2][k];O[i][k+1] += O[i][k]/10000; O[i][k] %= 10000;Z[i][k+1] += Z[i][k]/10000; Z[i][k] %= 10000;}int n;while( ~scanf("%d",&n) ) {int end = 99;while ( end > 0 && !Z[n][end] ) -- end;printf("%d",Z[n][end --]);while ( end >= 0 )printf("%04d",Z[n][end --]);printf("\n");}    return 0;
}

转载于:https://www.cnblogs.com/lytwajue/p/6747626.html

UVa 1647 - Computer Transformation相关推荐

  1. UVA 1647 Computer Transformation

    https://vjudge.net/problem/UVA-1647 题意: 开始有一个1,接下来每一步1变成01,0变成10 问n不之后00的个数 打表找规律 第3步之后: 如果第i步之后有x个字 ...

  2. UVA - 1647 Computer Transformation(计算机变换)(找规律)

    题意:初始串为一个1,每一步会将每个0改成10,每个1改成01,因此1会依次变成01,1001,01101001,--输入n(n<=1000),统计n步之后得到的串中,"00" ...

  3. Computer Transformation UVA - 1647

    可以发现00经过两次变换会继续产生00,1经过两次变换也会产生00,所以就有相应的递推关系的出现,每次的1的个数均为上次的1的个数的两倍,其他的编程实现即可,具体代码如下: #include<i ...

  4. uva 1647(规律)

    O(n)=O(n-2)+2^(n-3),大数高精度 import java.util.*; import java.math.*; public class Main {static BigInteg ...

  5. UVa1647 Computer Transformation

    题意:初始串为1,每一步会将所有0变为10,所有1变为01.如1-01-1001-01101001.统计n步之后的串中,00这样连续两个0出现了多少次. 思路:找规律.首先,不会出现连续3个0.然后观 ...

  6. uva计算机水平,UVa的Computer Science「弗吉尼亚大学计算机科学系」

    弗吉尼亚大学计算机科学系研究生阶段开设有以下学位项目,分别是: 计算机科学博士:为期4-7年(视论文完成情况),要求申请者本科毕业,不限专业背景,但须拥有很强的计算机科学相关背景,修读过下文所述前置课 ...

  7. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  8. 杭电oj题目题型分类(转)

    1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...

  9. HDOJ题目分类大全

    版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...

最新文章

  1. java初始化数据报_初始化java原因
  2. django2.2+pymysql0.9.3报错(亲测)
  3. mfc让图片与按钮一起_MFC 基础知识:对话框背景添加图片和按钮Button添加图片...
  4. mysql中distinct关键字,MySQL关键字Distinct的详细介绍
  5. 所有的service报红但不报错_从一个应用报错来看centos系统的/tmp目录自动清理规则...
  6. JEECG - 基于代码生成器的J2EE智能开发框架 续五:权限设计
  7. Trying to embed a platform view but the PrerollContext does not support embedding
  8. 重启机器后挂载盘丢失
  9. 程序员必须掌握的 CPU 硬核干货!
  10. psp用ps1模拟器_PSP自制系统用PS模拟器玩PS游戏指南
  11. svm 预测标签的概率输出
  12. dota英雄技能快捷键大全
  13. 一个屌丝程序猿的人生(六十九)
  14. 【web安全】——文件上传漏洞
  15. 苹果电池显示维修_安装第三方电池的iPhone也可享受苹果官方维修
  16. 服务器上Kafka启动报错:error=‘Cannot allocate memory‘ (errno=12)
  17. 民生香格里拉白金卡值得申请吗?认清这几点很重要!
  18. 问题解决:尝试解决maven依赖找不到的n种姿势
  19. MySQL锁与脏读、不可重复读、幻读详解
  20. 安卓学习专栏——安卓报错android.support.v4.widget.SwipeRefreshLayout飘红

热门文章

  1. excel文件导出、下载的响应类型设置
  2. TwinCAT3 ADS通讯笔记
  3. mm7 彩信发送方法
  4. gps纠偏及大陆地图偏移原因
  5. 逻辑门电路 逻辑运算
  6. Python,pandas中DataFrame的选取总结
  7. Flex一些总结以及遇到的一些面试题
  8. C# 之AutoCAD标注样式定义
  9. MySQL第一讲-mysql的基本框架和查询命令流程
  10. react中的this.state与this.setState的区别