博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2506 Tiling 高精度
阅读量:5045 次
发布时间:2019-06-12

本文共 1233 字,大约阅读时间需要 4 分钟。

题目大意:给出一个2*n的条形区域,问用2*1和2*2的方格一共同拥有多少种摆放的方法。

思路:f[i] = f[i - 1] + f[i - 2] * 2

写一个高精度加法就能够了。

CODE:

#include 
#include
#include
#include
#include
#define MAX 260#define BASE 1000using namespace std;struct BigInt{ int num[MAX],len; BigInt(int _ = 0) { memset(num,0,sizeof(num)); if(_) { num[1] = _; len = 1; } else len = 0; } BigInt operator +(const BigInt &a)const { BigInt re; re.len = max(len,a.len); int temp = 0; for(int i = 1; i <= re.len; ++i) { re.num[i] = num[i] + a.num[i] + temp; temp = re.num[i] / BASE; re.num[i] %= BASE; } if(temp) re.num[++re.len] = temp; return re; }}f[MAX];ostream &operator <<(ostream &os,const BigInt &a) { os << a.num[a.len]; for(int i = a.len - 1; i; --i) os << fixed << setfill('0') << setw(3) << a.num[i]; return os;}int main(){ f[0] = BigInt(1); f[1] = BigInt(1); f[2] = BigInt(3); for(int i = 3; i <= 250; ++i) f[i] = f[i - 1] + f[i - 2] + f[i - 2]; int x; while(scanf("%d",&x) != EOF) cout << f[x] << endl; return 0;}
posted on
2017-05-08 18:10 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/mthoutai/p/6826494.html

你可能感兴趣的文章
【转】Linux下nginx配置https协议访问的方法
查看>>
activemq集群搭建Demo
查看>>
zookeeper系列之通信模型(转)
查看>>
windows Phone 7如何实现background的情况下不丢失数据
查看>>
windowsphone 中文开源项目集合
查看>>
Unity3D:代码中改变Sprite
查看>>
代码生成器原理
查看>>
Exp3 免杀原理与实践
查看>>
[ZooKeeper] 1 基本概念
查看>>
面试整理:版本信息
查看>>
linux中通过lsof恢复删除的文件,前题是fd被占用。
查看>>
【插件开发】—— 6 SWT 复杂控件使用以及布局
查看>>
linux下Apache服务器使用入门----httpd.conf
查看>>
什么样虚拟主机才能满足电子商务网站性能要求
查看>>
使用dbutils进行数据库操作
查看>>
KS检验学习[转载]
查看>>
根据当前复选框状态,判断文本框是否可用
查看>>
MySQL两个最简单的delimiter的使用demo
查看>>
好久没写博客了
查看>>
位图排序算法的一个实践
查看>>