题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1041

题意:电脑中存在数字1,进行扩展操作,如果遇到1变为“01”,如果遇到0,变为“10”,经过一次变换称为“01”,两次“1001”,三次“01101001”,

求经过n次变换,得到的01序列中有多少对相邻的0。

思路:先打表得到规律1,1,3,5,11,21,43……

找规律可以发现

1*2+1=3;

1*2+3=5;

3*2+5=11;

5*2+11=21;

……;

之后就是求和的事了,由于结果过大,用大数做就行了。

#include<iostream>
#include<cstdio>
#include<string>
using namespace std;
string str[1010];
string add(string s1,string s2)
{if(s1.length()<s2.length()){string tmp=s1;s1=s2;s2=tmp;}int l1=s1.length(),l2=s2.length(),i,j;for(i=l1-1,j=l2-1;i>=0;i--,j--){s1[i]=char(s1[i]+(j>=0?s2[j]-'0':0));if(s1[i]-'0'>=10){s1[i]=char((s1[i]-'0')%10+'0');if(i) s1[i-1]++;else s1="1"+s1;}}return s1;
}
int main(void)
{str[1]="0",str[2]="1",str[3]="1",str[4]="3",str[5]="5",str[6]="11";for(int i=7;i<=1005;i++){str[i]=add(add(str[i-2],str[i-2]),str[i-1]);} int n;while(~scanf("%d",&n)){cout<<str[n]<<endl;}return 0;
} 

转载于:https://www.cnblogs.com/2018zxy/p/9745592.html

hdu-1041(大数模板)相关推荐

  1. hdu 1134 卡特兰数(大数模板)

    卡特兰数 递推公式: C(n)=C(2n,n)/(n+1)  即用数组表示为c[i]=c[i-1]*(4*i-2)/(i+1); 一般形式 直接 表达 c[1]=1; for(i=2;i<40; ...

  2. c++ 大数类 大数模板

    分别使用C++中的运算符重载的方法来实现大数之间的数学运算,包括加法.减法.乘法.除法.n次方.取模.大小比较.赋值以及输入流.输出流的重载.. 并且使用这个大数模板,顺利AC了HDOJ上的1134这 ...

  3. 高精度运算模板(大数模板)

    现在还没学java..所以没法用java偷懒,先存一波C加加的大数运算模板,以备不时之需 补充:关于base参数的使用:代表字符串a和b都是在base进制下的数字,转换成10进制后进行运算后,返回的答 ...

  4. HDU 4927 大数运算

    模板很重要 #include <cstdio> #include <cstring> #include <cstdlib> #include <iostrea ...

  5. 大数模板(加减乘除幂次开方)

    很好用的模板,但当时做题的时候从哪里找的不知道了,原作看到知会我一声我补上hhh 1 struct BigInteger 2 { 3 int len; 4 int arg[500]; 5 BigInt ...

  6. kuangbin大数模板(加法和乘法)

    之前的模板因为用了string类,以及运算的时候常数太大,导致速度太慢,虽然比较方便但不算很通用,所以存一波kuangbin大大的模板 /** 高精度,支持乘法和加法*/ struct BigInt ...

  7. hdu 1023 大数 卡特兰数

    卡特兰数 JAVA大数 import java.util.*; import java.math.*; public class Main {public static void main(Strin ...

  8. java大数模板_java大数模板

    这几天做了几道用大数的题,发现java来做大数运算十分方便.对acmer来说是十分实用的 1.valueOf(parament); 将参数转换为制定的类型 比如 int a=3; BigInteger ...

  9. HDU 2222 ACAM模板(AC自动机)

    这里找到了两篇很nice的Trie树(作者Hackbuteer1)以及AC自动机(作者niushuai666)入门详解.博主写的可以说是非常用心了,一看就懂. 题意:给出N(<=10000)个单 ...

最新文章

  1. ERROR 1222 (21000): The used SELECT statements have a different number of columns :
  2. NeurIPS审稿引发吐槽大会,落选者把荒唐意见怼了个遍:“我谢谢你们了”
  3. 关于mysql服务器3306端口不能远程连接的解决
  4. java实现大整数的加减乘除法(百练OJ:2736、2737、2980、2981)
  5. Java LinkedList双向链表源码分析
  6. Cannot set property 'onclick' of null报错
  7. 计算机网络telnet命令作用,全面解析telnet命令
  8. Web前端培训分享:Web前端三大主流框架对比
  9. PDF旋转后保存,打开为什么还是旋转前的方向?
  10. LCD 1602学习
  11. SVN提交时文件上出现的问号图标是什么
  12. 腾讯IM发送消息20001
  13. 简书项目实战-main首页开发
  14. 拯救者Y7000 (NIVIDIA GTX1054)Ubuntu 16.04无法启动问题及解决方案
  15. 基于jaccard计算论文对的reference相似度的算法(2)
  16. 学习AI人工智能,你必须要知道的4件事!
  17. some resource favor
  18. Python — 函数进阶(2)
  19. 2018-8-10-WPF-使用-VisualStudio-2017-项目文件
  20. kafka和zookeeper下载地址和安装方法和JAVA消费者方法

热门文章

  1. WITH AS【原创】
  2. 阿里进军欧洲市场遇阻:仅凭复制中国模式难获成功
  3. DOS环境下支持的最大内存是多少?
  4. 人工智能工程师学习路线
  5. java 首字母小写_java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例...
  6. sklearn 随机分割数据_sklearn.ensemble.RandomForestClassifier 随机深林参数详解
  7. 线性求逆元模板_ACM 数论基本模板
  8. flac3d命令流实例大全_如何在Linux上使用xargs命令
  9. 032_SpringBoot多环境属性配置文件
  10. 029_jQuery Ajax简介