9273:PKU2506Tiling

来源:http://noi.openjudge.cn/ch0202/9273/

总时间限制:2000ms  单个测试点时间限制:1000ms
内存限制:131072kB
描述
    对于一个2行N列的走道。现在用1*2,2*2的砖去铺满。问有多少种不同的方式。
    下图是一个2行17列的走道的某种铺法。

输入
    整个测试有多组数据,请做到文件底结束。每行给出一个数字N,0 <= n <= 250
输出
    如题
样例输入
    2
    8
    12
    100
    200
样例输出
    3
    171
    2731
    845100400152152934331135470251
    1071292029505993517027974728227441735014801995855195223534251

分析:
f[n] = f[n-1] + f[n-2]*2 ;

使用这个递推公式,再加上高精度计算即可。

综合了高精度、递推,而且高精度的运用比较熟悉、巧妙。

代码来源:http://blog.csdn.net/c20180630/article/details/52329721

 1     #include<iostream>
 2     #include<cstdio>
 3     using namespace std;
 4     int a[301][501];  //a[i]用来存储一个大整数,其中a[i][0]存储长度,真实数据倒序存储。
 5     int max(int x,int y){return x>y?x:y;}
 6     int main()
 7     {
 8         a[1][0]=1;
 9         a[1][1]=1;
10         a[2][0]=1;
11         a[2][1]=3;
12         for(int i=3;i<=300;i++){
13             for(int j=1;j<=max(a[i-2][0],a[i-1][0]);j++)
14                 a[i][j]=a[i-1][j]+a[i-2][j]*2;  //高精度加法(按位加的操作)
15             a[i][0]=max(a[i-2][0],a[i-1][0]);
16             for(int j=1;j<=a[i][0];j++){         //高精度加法的进位
17                 a[i][j+1]+=a[i][j]/10;
18                 a[i][j]%=10;
19             }
20             while(a[i][a[i][0]+1]){              //更新高精度加法结果的位数
21                 a[i][0]++;
22                 a[i][a[i][0]+1]+=a[i][a[i][0]]/10;
23             }
24         }
25         int n;
26         while(cin>>n){
27             if(n==0)
28                 cout<<1<<endl;
29             else{
30                 for(int i=a[n][0];i>=1;i--)
31                     cout<<a[n][i];
32                 cout<<endl;
33             }
34         }
35     }

转载于:https://www.cnblogs.com/huashanqingzhu/p/6535989.html

9273:PKU2506Tiling相关推荐

  1. 递归--练习11--noi9273 PKU2506Tiling

    递归--练习11--noi9273 PKU2506Tiling 一.心得 25 a[i]%=10;(高精度时)26 这里错了,花了好久改好 27 28 29 int* f(int n){30 if(d ...

  2. 投入OJ的怀抱~~~~~~~~~~

    OpenJudge C20182024 信箱(1) 账号 修改设定 退出小组 管理员 frank 林舒 Dzx someone 李文新 公告 11-05 程序设计与算法(大学先修课) 成员(61910 ...

  3. 机试NOI:基本算法

    NOI 1.11-2.5 基本算法学习,不断更新ing 1.11 编程基础之二分查找 NOI:7940 最接近的元素(经典二分法思想):https://blog.csdn.net/wuzhenzi51 ...

  4. 投入OJ的怀抱~~~

    OpenJudge 登入 注册 管理员 frank 林舒 Dzx someone 李文新 公告 11-05 程序设计与算法(大学先修课) 成员(85168)查看全部 NOI(题库正在建设中,做题纪录有 ...

  5. 【NOI OJ】一大波题正在飞来(ˉ▽ ̄~) 我才不是 Ctrl C + Ctrl V 的人呢

    OpenJudge 登入 注册 管理员 frank 林舒 Dzx someone 李文新 公告 11-05 程序设计与算法(大学先修课) 成员(61647)查看全部 NOI(题库正在建设中,做题纪录有 ...

  6. PKU2506Tiling

    从这篇的标题可以看出--个寂寞,第一眼看到这个标题,大部分人绝对是一脸蒙的. 回归正题. 有人说,dp太难了,说我怎么一上来就写dp的题目(其实是自己觉得难),所以今天就降一个level,讲道递推的题 ...

  7. PyTorch 笔记(18)— torch.optim 优化器的使用

    到目前为止,代码中的神经网络权重的参数优化和更新还没有实现自动化,并且目前使用的优化方法都有固定的学习速率,所以优化函数相对简单,如果我们自己实现一些高级的参数优化算法,则优化函数部分的代码会变得较为 ...

  8. sqlserⅴer随机函数_SQL server 随机数函数

    SQL server的随机数函数rand()详解 from:http://tieba.baidu.com/f?kz=607363268 在SQL Server中,有个随机函数rand(),有不少新手可 ...

  9. 宏基因组、微生物、环境杂志影响因子(IF)及变化分析

    转发朋友圈,截图发送至公众号后台,获取全部杂志,全部!13010本杂志的影响因子! 以下是按类筛选的杂志,包括 宏基因组.微生物.生物技术和应用微生物.环境科学各分领域的杂志精选,以及变化分析 宏基因 ...

最新文章

  1. linux gcc编译c文件头文件,使用GCC编译器编译C语言
  2. linux安装libfastcommon+fastdfs+nginx
  3. oracle 监听加密 tcps,通过oracle wallet配置listener tcps加密
  4. Spring和ActiveMQ整合的完整实例
  5. 和运营开会的知道的一些点
  6. 咱也过个双 11 !Flink Forward Asia 培训门票买一赠一!
  7. 【数字基带信号】基于matlab数字基带信号波形仿真【含Matlab源码 988期】
  8. InnoDB存储引擎MVCC实现原理
  9. java集合试题_java集合练习题及答案.doc
  10. HDU - 4287 Intelligent IME
  11. python设置字体_python操作word设置字体
  12. ROS编译依赖配置问题记录
  13. (转)通过修改键盘映射替代损坏按键
  14. 手游传奇刷元宝_战神传奇手游刷元宝方法技巧大全
  15. 04 分布式文件系统以及MapReduce入门程序
  16. 华为交换机dhcp获取不到_S7706交换机客户端无法通过DHCP获取地址问题
  17. 在疫情肆虐的世界里,适度恐惧的活着
  18. Android 源码分享之小米文件管理器
  19. 机器学习的梯度下降中学习率的选取
  20. 一周信创舆情观察(5.24~5.30)

热门文章

  1. Oracle with子句的简单介绍.
  2. c语言如何如何入门,程序员C语言新手如何入门?
  3. 怎么把一台华为路由器配置为FTP服务器?
  4. erdas2015几何校正模块在哪_erdas图像几何校正操作步骤指南
  5. CNCF 官方大使张磊:什么是云原生?
  6. 前后端、多语言、跨云部署,全链路追踪到底有多难?
  7. 启动延时缩短 50%-80%,函数计算发布镜像加速功能
  8. 专访 Christian Posta:Istio 1.7 将成为生产可用的最稳定版本
  9. 阿里开源的那个牛X的问题排查工具——Arthas,推出IDEA插件了!
  10. 空间地理加权回归stata_xy妙妙屋丨地理加权回归和空间自相关