UVA 1647 Computer Transformation
https://vjudge.net/problem/UVA-1647
题意:
开始有一个1,接下来每一步1变成01,0变成10
问n不之后00的个数
打表找规律
第3步之后:
如果第i步之后有x个字符,
那么第i+1步之后 的后x个字符与第i步一样
前x个字符是第i步取反
所以00得个数由三部分组成
1、上一步00的个数
2、上一步11的个数
3、当i为偶数时,前x个字符的最后一个是0,后x个字符的第一个是0,00个数+1
f[i][0]=f[i-1][0]+f[i-1][1]+!(i&1)
f[i][1]=f[i-1][0]+f[i-1][1]
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; struct BigInteger {int len;int num[10001];BigInteger() { len=0; memset(num,0,sizeof(num));}BigInteger operator + (BigInteger p) const{BigInteger b;b.len=max(len,p.len);int x=max(len,p.len);for(int i=1;i<=x;i++){b.num[i]+=num[i]+p.num[i];b.num[i+1]=b.num[i]/10;b.num[i]%=10;}if(b.num[x+1]) x++;b.len=x;return b;}void operator = (BigInteger p) {this->len=p.len;for(int i=1;i<=len;i++) this->num[i]=p.num[i];} void print(){for(int i=len;i;i--) printf("%d",num[i]);printf("\n");} }; BigInteger f[1001][2]; BigInteger e; int main() {f[1][0].len=1;f[1][0].num[1]=0;f[2][0].len=1;f[2][0].num[1]=1;e.len=1; e.num[1]=1;for(int i=3;i<=1000;i++) {f[i][1]=f[i-1][0]+f[i-1][1];if(i&1) f[i][0]=f[i-1][0]+f[i-1][1];else f[i][0]=f[i-1][0]+f[i-1][1]+e;}int n;while(scanf("%d",&n)!=EOF) f[n][0].print(); }
转载于:https://www.cnblogs.com/TheRoadToTheGold/p/7412706.html
UVA 1647 Computer Transformation相关推荐
- UVA - 1647 Computer Transformation(计算机变换)(找规律)
题意:初始串为一个1,每一步会将每个0改成10,每个1改成01,因此1会依次变成01,1001,01101001,--输入n(n<=1000),统计n步之后得到的串中,"00" ...
- UVa 1647 - Computer Transformation
题目:初始给你一个1,然后每一次1变成01,0变成10求变化n步后,有多少个00. 分析:数学题.我们观察变化. 00 -> 1010 出现 10.01 01 -> 1001 出现 10. ...
- Computer Transformation UVA - 1647
可以发现00经过两次变换会继续产生00,1经过两次变换也会产生00,所以就有相应的递推关系的出现,每次的1的个数均为上次的1的个数的两倍,其他的编程实现即可,具体代码如下: #include<i ...
- uva 1647(规律)
O(n)=O(n-2)+2^(n-3),大数高精度 import java.util.*; import java.math.*; public class Main {static BigInteg ...
- UVa1647 Computer Transformation
题意:初始串为1,每一步会将所有0变为10,所有1变为01.如1-01-1001-01101001.统计n步之后的串中,00这样连续两个0出现了多少次. 思路:找规律.首先,不会出现连续3个0.然后观 ...
- uva计算机水平,UVa的Computer Science「弗吉尼亚大学计算机科学系」
弗吉尼亚大学计算机科学系研究生阶段开设有以下学位项目,分别是: 计算机科学博士:为期4-7年(视论文完成情况),要求申请者本科毕业,不限专业背景,但须拥有很强的计算机科学相关背景,修读过下文所述前置课 ...
- 紫书《算法竞赛入门经典》
紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...
- 杭电oj题目题型分类(转)
1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...
- HDOJ题目分类大全
版权声明:本文为博主原创文章,欢迎转载,转载请注明本文链接! https://blog.csdn.net/qq_38238041/article/details/78178043 杭电里面有很多题目, ...
最新文章
- 全面感知通用目标:建模、分割和重建(CVPR2021)
- pandas笔记(pandas Data Structures)
- C语言头文件避免重复包含
- HDU 4879 ZCC loves march (并查集,set,map)
- 深入理解C++ 虚函数表
- SpringBoot2 集成日志,复杂业务下的自定义实现
- Visual Studio 2008带来了什么
- Activity之间的数据传递—实现Parcelable接口
- 如何开启深度学习之旅?这三大类125篇论文为你导航(附资源下载)
- Powershell进阶学习(1) 浅谈Powershell学习方法
- mt2503 用Dct tool打开codegen.dws提示版本 不match
- mysql 百万级数据库优化方案
- 前端js生成条形码和EAN商品码(69码)
- STL源码剖析学习之increment、decrement、dereference实现源码
- mysql point 经纬度_lbs - Mysql POINT类型数据,怎么计算经纬度偏差
- js的window.print打印页面 不打印网页中的“打印”按钮
- jooq从入门到精通(一)
- 微信小程序基于udp协议与esp8266进行通信
- 关于IPHONE4跑流量问题解决方法:
- 配置SD卡ext文件系统启动