DP之八

//sicily 1166. Computer Transformat

#include
<iostream> //DP+高精度
using namespace std;
#define M 50
int Bit(int p)
{
if(p==0)
return 1;
int bit=0;
while(p!=0)
{
p
/=10;
bit
++;
}
return bit;
}
class Longint //高精度
{
public:
Longint()
{
for(int i=0;i<M;++i)
num[i]
=0;
}
Longint(
int m)
{
for(int i=0;i<M-1;++i)
num[i]
=0;
num[M
-1]=m;
}
Longint
operator =(Longint other)
{
for(int i=0;i<M;++i)
num[i]
=other.num[i];
return *this;
}
friend Longint
operator +(Longint p,Longint other)
{
Longint p1;
int bit=0;
for(int i=M-1;i>=0;--i) //数组开得足够大,靠前的几个num[i]将一直是0,所以不必考虑第一个数向前进位的问题
{
p1.num[i]
=p.num[i]+other.num[i]+bit;
if(p1.num[i]>=1000000000)
{
p1.num[i]
=p1.num[i]-1000000000;
bit
=1;
}
else
bit
=0;
}
return p1;
}
friend ostream
& operator <<(ostream& out,Longint& p)
{
int i=0;
while(i<M&&p.num[i]==0)
++i;
if(i==M)
out<<0;
else
{
out<<p.num[i];
for(int j=i+1;j<M;++j)
{
int k=9-Bit(p.num[j]);
while(k--)
out<<0;
out<<p.num[j];
}
}
return out;
}
private:
int num[M];
};

Longint dp[
1010][2]; //dp[i][0]表示第i轮后有多少个 01 , dp[i][1]表示第i轮后有多少个 1
int main()
{
dp[
0][0]=Longint(0);dp[0][1]=Longint(1); //初始值是1,所以dp[0][0]=0, dp[0][1]=1
dp[1][0]=dp[1][1]=Longint(1); //第一轮是01,所以dp[1][0]= dp[1][1]=1
for(int i=2;i<=1000;++i)
{
dp[i][
0]=dp[i-1][1]+dp[i-2][0];
dp[i][
1]=dp[i-1][1]+dp[i-1][1]; //dp[i][1]=2^(i-1)
}
int n;
while(cin>>n)
{
cout
<<dp[n-1][0]<<endl;
}
return 0;
}

/*
题意:一开始只有一个1,然后每一轮把1变为01,把0变为10,问经过N轮后有多少个00。
例如,第一轮后变为01,第二轮后变为1001,第三轮后变为01101001。

思路:
由于00只能由01变化得到,01->1001,所以要知道第N轮后有多少个00,需要知道第N-1轮后有多少个01
01有两种方法生成:由上一轮的 1 生成,即1->01, 或者由上一轮的 00 生成,即 00->1010(含01)
事实上,在第二种方法中,上一轮的 00 是由前一轮的 01 生成,即 01->1001(含00)
所以推导出 dp[i][0]=dp[i-1][1]+dp[i-2][0]; ( dp[i][0]表示第i轮后有多少个 01 , dp[i][1]表示第i轮后有多少个 1 )
至于dp[i][1],显然有 dp[i][1]=2^(i-1)
*/

  

转载于:https://www.cnblogs.com/mjc467621163/archive/2011/08/22/2149163.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[html] H5怎么禁用长按复制的功能?

[html] H5怎么禁用长按复制的功能&#xff1f; // 禁止长按图片保存&#xff0c;设置img样式 -webkit-touch-callout: none; pointer-events: none; // 微信浏览器无法禁止&#xff0c;需加上这句// 禁止长按选择文字 -webkit-user-select: none;// 禁止长按呼出菜单 -webkit-…

python 3d大数据可视化_Python大数据可视化编程实践-绘制图表

Python 数据可视化编程实践 - 绘制图表 准备工作 打开 Jupyter Notebook &#xff0c;导入需要的包&#xff0c; 并配置好图片交互和中文显示环 境&#xff1a; import pandas as pd import numpy as np import sys reload(sys) sys.setdefaultencoding(utf-8) import matplotl…

Docker中安装Jenkins实时发布.net core 项目(二)

Docker中安装Jenkins实时发布.net core 项目防坑点升级dockerjenkins运行运行命令jenkins拉取git并构建项目其他查看发布文件防坑点 升级docker 首先我们要确认我们在liunx安装的不是1.31.1的docker容器不然在后面的运行中会报错 can not open /etc/sysconfig/docker如果你是…

sharepoint 2010 timejob 注意

每次改代码&#xff0c;需要执行: net stop SPTimerV4net start SPTimerV4转载于:https://www.cnblogs.com/Forest-zhu/archive/2011/08/23/2150658.html

[html] 404页面有什么作用?

[html] 404页面有什么作用&#xff1f; 404页面实际上跟HTTP Status 404类似&#xff0c;标识资源找不到。当然实际上404页面现在的玩法就多了&#xff0c;比如公益页面等个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷…

http get 消息的作用是什么?_http基础知识

什么是http&#xff1f;HTTP 全称是 HyperText Transfer Protocol&#xff0c;即&#xff1a;超文本传输协议&#xff0c;从 1990 年开始就在 WWW 上广泛应用&#xff0c;是现今在 WWW 上应用最多的协议&#xff0c;HTTP 是应用层协议&#xff0c;当你上网浏览网页的时候&#…

Jenkins构建 netcore5.0 项目时出现NU3028/NU3037错误的解决方案

我在使用Jenkins自动化部署项目的时候&#xff0c;出现了如下的错误 error NU3028: Package System.IO.Compression 4.3.0 from source https://api.nuget.org/v3/index.json: The repository primary signatures timestamp found a chain building issue: UntrustedRoot: self…

2019长安大学ACM校赛网络同步赛 L XOR

题意 求区间内有多少数x满足x^4x^5x0 1≤l≤r≤1018. 题解 根据异或的性质可以推到 x^4x5x -->x^4xx4x 即x和4x每一位都不同&#xff0c;即x和(x<<2)每一位都不同&#xff0c;就是x中每一位都与他前前一位不同。 那么就很简单了&#xff0c;可以很容易写出数位DP状态f…

[html] 通过设置表单的target=“_blank“来下载文件会被浏览器拦截吗?如何解决?

[html] 通过设置表单的target"_blank"来下载文件会被浏览器拦截吗&#xff1f;如何解决&#xff1f; 不用表单下载&#xff0c;动态创建一个a标签&#xff0c; 设置href, target"_self" 然后a.click() 最后移除个人简介 我是歌谣&#xff0c;欢迎和大家一…

贝塞尔曲线 总结

Bzier curve(贝塞尔曲线)是应用于二维图形应用程序的数学曲线。 曲线定义&#xff1a;起始点、终止点&#xff08;也称锚点&#xff09;、控制点。通过调整控制点&#xff0c;贝塞尔曲线的形状会发生变化。 1962年&#xff0c;法国数学家Pierre Bzier第一个研究了这种矢量绘制曲…

python变量标识符_简谈-Python的注释、变量类型、标识符及关键字

在Python程序中&#xff0c;要想支持中文输出&#xff0c;则要在代码前面添加标识符&#xff1a;开发人员在程序中自定义的一些符号和名称 标示符是自己定义的,如变量名 、函数名等 标识符的规则&#xff1a; 标示符由字目、下划线和数字组成&#xff0c;且数字不能开头 python…

win10使用docker desktop安装k8s一直starting解决方法

在docker中启动k8s一直卡在staring当中查了许多文档都写得不明不白的&#xff0c;研究了许久终于解决决定写个帖子来记录一下 1.首先查看本地docker中k8s的版本拉取源码 我们这里是1.19.7 然后我们进入到 k8s下载 去拉取k8s源码 git clone https://codechina.csdn.net/mirr…

python 字符串翻转

1. 使用字符串切片&#xff0c;步长设置为-1 1 # coding:utf-8 2 3 s “abcdefg123” 4 r s[::-1] 5 print(r) 2. 双端队列 1 # coding:utf-82 from collections import deque3 4 5 def string_reverse4(string):6 d deque()7 d.extendleft(string)8 print …

Android菜单详解(三)——SubMenu和IconMenu

我们在上一篇介绍了如何在Android中创建和响应选项菜单&#xff0c;今天我们将探索子菜单和图标菜单。 子菜单Sub Menu 子菜单提供了一种自然的组织菜单项的方式&#xff0c;它被大量地运用在windows和其他OS的GUI设计中。Android同样支持子菜单&#xff0c;你可以通过addSubMe…

[html] HTML5如何监听video的全屏和退出全屏?

[html] HTML5如何监听video的全屏和退出全屏&#xff1f; 监听fullscreenchange事件document.addEventListener(fullscreenchange, (event) > {// document.fullscreenElement will point to the element that// is in fullscreen mode if there is one. If there isnt one…

python程序代码解析_Python源码分析3 – 词法分析器PyTokenizer

Introduction 上次我们分析了Python中执行程序可分为5个步骤&#xff1a; Tokenizer进行词法分析&#xff0c;把源程序分解为Token Parser根据Token创建CST CST被转换为AST AST被编译为字节码 执行字节码 本文将介绍Python程序执行的第一步&#xff0c;也就是词法分析。词法分析…

模板 - 快速沃尔什变换

空 转载于:https://www.cnblogs.com/Yinku/p/11253632.html

Liunx下使用Nginx负载均衡

我是centos8得主机 安装命令: yum install nginx 如果为Ubuntu主机 sudo apt-get install nginx 安装完成后&#xff0c;启用并启动Nginx服务&#xff1a; sudo systemctl enable nginxsudo systemctl start nginx 然后我们有2个服务&#xff1a; 一个地址为: http://xx…

[html] HTML5的video在手机端如何实现进来页面时就自动播放?

[html] HTML5的video在手机端如何实现进来页面时就自动播放&#xff1f; 理想情况autoplaytrue。但是现实是&#xff1a;基本所有浏览器都屏蔽了这个属性。 能实现的现在只有微信了&#xff0c;微信有一套自己的规则的内核&#xff0c;可以使用&#xff1a;controlslist"…

用python写helloworld_Python Helloworld程序简单实现

对于一个学习过编程语言的朋友来说&#xff0c;肯定会对Helloworld这一词汇记忆深刻。几乎在学习语言初期&#xff0c;我们都会通过这一简单的小程序来对编程语言有一个深入的了解。那么今天就为大家介绍一下Python Helloworld程序的实现方法。 在开始Python Helloworld程序的创…