Tiling
Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 7264   Accepted: 3528

Description

In how many ways can you tile a 2xn rectangle by 2x1 or 2x2 tiles?
Here is a sample tiling of a 2x17 rectangle.

Input

Input is a sequence of lines, each line containing an integer number 0 <= n <= 250.

Output

For each line of input, output one integer number in a separate line giving the number of possible tilings of a 2xn rectangle.

Sample Input

2
8
12
100
200

Sample Output

3
171
2731
845100400152152934331135470251
1071292029505993517027974728227441735014801995855195223534251 【题目来源】
The UofA Local 2000.10.14
http://poj.org/problem?id=2506 【题目大意】
意思很简单,给你一块2*n的地板,问你使用1*2、2*2的瓷砖来铺有几种方法。 【题目分析】
看到样例就可以发现是高精度。
首先,我们假设前2*(n-1)块地板已经铺好了,那么我们要铺到2*n就只有一种方法,就是使用1*2这一种瓷砖。
假设前2*(n-2)块地板已经铺好了,那么我们要铺到2*n则有三种方法,也就是使用两块1*2,或者使用两块2*1,或者使用一块2*2,但是这其中有一种是包含在上面的
方法中的,所以在递推的时候只能算2种。
因此我们得到了我们的递推公式:
f(1)=1;
f(2)=1;
f(3)=3;
f(n)=f(n-1)+f(n-2)*2; 剩下的就是实现的问题,高精度简单加法。 ac代码:
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<bitset>
#include<vector>
#include<cmath>
#include<stack>
#include<queue>
using namespace std;
int ans[][];
int main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF)
{
memset(ans,,sizeof(ans));
ans[][]=;
ans[][]=;
ans[][]=;
if(n<=)
{
printf("%d\n",ans[n][]);
}
else
{
int temp=;
int s=;
for(i=;i<=n;i++)
{
for(j=;j<;j++)
{
s=ans[i-][j]+ans[i-][j]*+temp;
ans[i][j]=s%;
temp=s/;
}
}
int flag=;
for(i=;i>=;i--)
{
if(flag||ans[n][i])
{
flag=;
printf("%d",ans[n][i]);
}
}
puts("");
} }
return ;
}

递推 + 高精度 --- Tiling的更多相关文章

  1. PKU 2506 Tiling(递推+高精度||string应用)

    题目大意:原题链接有2×1和2×2两种规格的地板,现要拼2×n的形状,共有多少种情况,首先要做这道题目要先对递推有一定的了解.解题思路:1.假设我们已经铺好了2×(n-1)的情形,则要铺到2×n则只能 ...

  2. 递推+高精度+找规律 UVA 10254 The Priest Mathematician

    题目传送门 /* 题意:汉诺塔问题变形,多了第四个盘子可以放前k个塔,然后n-k个是经典的汉诺塔问题,问最少操作次数 递推+高精度+找规律:f[k]表示前k放在第四个盘子,g[n-k]表示经典三个盘子 ...

  3. [luogu]P1066 2^k进制数[数学][递推][高精度]

    [luogu]P1066 2^k进制数 题目描述 设r是个2^k 进制数,并满足以下条件: (1)r至少是个2位的2^k 进制数. (2)作为2^k 进制数,除最后一位外,r的每一位严格小于它右边相邻 ...

  4. [BZOJ1089][SCOI2003]严格n元树(递推+高精度)

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1089 分析: 第一感觉可以用一个通式求出来,但是考虑一下很麻烦,不好搞的.很容易发现最 ...

  5. 【BZOJ】1002: [FJOI2007]轮状病毒 递推+高精度

    1002: [FJOI2007]轮状病毒 Description 给定n(N<=100),编程计算有多少个不同的n轮状病毒. Input 第一行有1个正整数n. Output 将编程计算出的不同 ...

  6. BZOJ 1002 FJOI2007 轮状病毒 递推+高精度

    题目大意:轮状病毒基定义如图.求有多少n轮状病毒 这个递推实在是不会--所以我选择了打表找规律 首先执行下面程序 #include<cstdio> #include<cstring& ...

  7. 【BZOJ】1089: [SCOI2003]严格n元树(递推+高精度/fft)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1089 题意:求深度为d的n元树数目.(0<n<=32, 0<=d<=16) ...

  8. 递推+高精度 UVA 10497 Sweet Child Makes Trouble(可爱的孩子惹麻烦)

    题目链接 题意: n个物品全部乱序排列(都不在原来的位置)的方案数. 思路: dp[i]表示i个物品都乱序排序的方案数,所以状态转移方程.考虑i-1个物品乱序,放入第i个物品一定要和i-1个的其中一个 ...

  9. Uva10328 dp(递推+高精度)

    题目链接:http://vjudge.net/contest/136499#problem/F 题意:给你一个硬币,抛掷n次,问出现连续至少k个正面向上的情况有多少种. 一个比较好理解的题解:原题中问 ...

随机推荐

  1. WIN10 报错 "此共享需要过时的SMB1协议,而此协议是不安全"的解决方法

    发现新安装的win10能看到其他计算机,但不能共享其他计算的共享文件/夹,出现如下情况:在浏览器里输入:\IP 不能访问到计算机的共享文件夹,或者在桌面上新建一个指向到其他计算机共享文件/夹的快捷方式 ...

  2. delphi实现窗体闪烁功能

    delphi实现窗体闪烁功能 以前做窗口闪动时都没有考虑到让任务栏上的按钮闪动的问题, 现在一个客户需要任务栏按钮闪动,发现以前使用的flashwindow不能达到要求了, 查找了一下,找到flash ...

  3. 周黑鸭借力MES,推进智能生产

    1.项目背景介绍 中国食品企业在经过了一些年的行业整体快速增长后,国家对食品行业的管理提出了更加严格的要求,控制更严,准入门槛提高,企业数量成下降趋势. 大中型食品企业已经需要走出国门,走向国际市场, ...

  4. Android源码分析(九)-----如何修改Android系统默认时间

    一 : 修改Android系统默认时间 源码路径:frameworks/base/services/java/com/android/server/SystemServer.java 主要变量EARL ...

  5. my97Date如何多选日期且无重复日期

    最终的效果是: 首先引用my97Date的js WdatePicker.js html代码 <textarea cols="" name="txtNoUseDate ...

  6. Open Physics

    1.开放物理计划. 开放物理计划,英文Open Physics.是AMD公司为自己的3A平台打造的物理模拟计算平台,以OpenCL为基础,由CPU+GPU联合计算完成.所谓“开放”,是指参与这个计划的 ...

  7. 02-赵志勇机器学习-Logistics_Regression-test(转载)

    # coding:UTF-8 ''' Date:20160901 @author: zhaozhiyong ''' import numpy as np from lr_train import si ...

  8. JDK9下载与安装

    1.进入oracle官网下载页面 https://www.oracle.com/downloads/index.html 2.点击Menu 3.点击JAVA SE 4.点击JDK Download 5 ...

  9. 爬虫-selenium的使用

    安装 pip install selenium 开始 # coding=utf-8 from selenium import webdriver # 引用selenium库 import time # ...

  10. go实现tcp 服务器

    我们将使用 TCP 协议和协程范式编写一个简单的客户端-服务器应用,一个(web)服务器应用需要响应众多客户端的并发请求:Go 会为每一个客户端产生一个协程用来处理请求.我们需要使用 net 包中网络 ...