hdu-1041(大数模板)
题目链接: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(大数模板)相关推荐
- 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; ...
- c++ 大数类 大数模板
分别使用C++中的运算符重载的方法来实现大数之间的数学运算,包括加法.减法.乘法.除法.n次方.取模.大小比较.赋值以及输入流.输出流的重载.. 并且使用这个大数模板,顺利AC了HDOJ上的1134这 ...
- 高精度运算模板(大数模板)
现在还没学java..所以没法用java偷懒,先存一波C加加的大数运算模板,以备不时之需 补充:关于base参数的使用:代表字符串a和b都是在base进制下的数字,转换成10进制后进行运算后,返回的答 ...
- HDU 4927 大数运算
模板很重要 #include <cstdio> #include <cstring> #include <cstdlib> #include <iostrea ...
- 大数模板(加减乘除幂次开方)
很好用的模板,但当时做题的时候从哪里找的不知道了,原作看到知会我一声我补上hhh 1 struct BigInteger 2 { 3 int len; 4 int arg[500]; 5 BigInt ...
- kuangbin大数模板(加法和乘法)
之前的模板因为用了string类,以及运算的时候常数太大,导致速度太慢,虽然比较方便但不算很通用,所以存一波kuangbin大大的模板 /** 高精度,支持乘法和加法*/ struct BigInt ...
- hdu 1023 大数 卡特兰数
卡特兰数 JAVA大数 import java.util.*; import java.math.*; public class Main {public static void main(Strin ...
- java大数模板_java大数模板
这几天做了几道用大数的题,发现java来做大数运算十分方便.对acmer来说是十分实用的 1.valueOf(parament); 将参数转换为制定的类型 比如 int a=3; BigInteger ...
- HDU 2222 ACAM模板(AC自动机)
这里找到了两篇很nice的Trie树(作者Hackbuteer1)以及AC自动机(作者niushuai666)入门详解.博主写的可以说是非常用心了,一看就懂. 题意:给出N(<=10000)个单 ...
最新文章
- ERROR 1222 (21000): The used SELECT statements have a different number of columns :
- NeurIPS审稿引发吐槽大会,落选者把荒唐意见怼了个遍:“我谢谢你们了”
- 关于mysql服务器3306端口不能远程连接的解决
- java实现大整数的加减乘除法(百练OJ:2736、2737、2980、2981)
- Java LinkedList双向链表源码分析
- Cannot set property 'onclick' of null报错
- 计算机网络telnet命令作用,全面解析telnet命令
- Web前端培训分享:Web前端三大主流框架对比
- PDF旋转后保存,打开为什么还是旋转前的方向?
- LCD 1602学习
- SVN提交时文件上出现的问号图标是什么
- 腾讯IM发送消息20001
- 简书项目实战-main首页开发
- 拯救者Y7000 (NIVIDIA GTX1054)Ubuntu 16.04无法启动问题及解决方案
- 基于jaccard计算论文对的reference相似度的算法(2)
- 学习AI人工智能,你必须要知道的4件事!
- some resource favor
- Python — 函数进阶(2)
- 2018-8-10-WPF-使用-VisualStudio-2017-项目文件
- kafka和zookeeper下载地址和安装方法和JAVA消费者方法
热门文章
- WITH AS【原创】
- 阿里进军欧洲市场遇阻:仅凭复制中国模式难获成功
- DOS环境下支持的最大内存是多少?
- 人工智能工程师学习路线
- java 首字母小写_java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例...
- sklearn 随机分割数据_sklearn.ensemble.RandomForestClassifier 随机深林参数详解
- 线性求逆元模板_ACM 数论基本模板
- flac3d命令流实例大全_如何在Linux上使用xargs命令
- 032_SpringBoot多环境属性配置文件
- 029_jQuery Ajax简介