POJ 2506 Tiling dp+大数 水题
大致题意:现有两种方块(1X2,2X2),方块数量无限制。问用这两种方块填满2Xn的矩阵的填法有多少种。
分析:通俗点说,找规律。专业化一点,动态规划。
状态d[i],表示宽度为i的填法个数。
状态转移方程:d[0]=d[1]=1,i=0,1;
d[i]=d[i-1]+d[i-2]*2;
c或者c++写的话,先模拟下大数吧,java直接用大数类就行了。
c++
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std; struct BigInteger
{
int num[100];
int len;
};
BigInteger add(BigInteger a,BigInteger b)
{
BigInteger c;
c.len=0;
int len=max(a.len,b.len);
int left=0;
for(int i=0; i<len; i++,c.len++)
{
int tmp=a.num[i]+b.num[i]+left;
c.num[i]=tmp%10;
left=tmp/10;
}
if(len==a.len)
for(int i=len; i<b.len; i++,c.len++)
{
int tmp=b.num[i]+left;
c.num[i]=tmp%10;
left=tmp/10;
}
if(len==b.len)
for(int i=len; i<a.len; i++,c.len++)
{
int tmp=a.num[i]+left;
c.num[i]=tmp%10;
left=tmp/10;
}
if(left) c.num[c.len++]=1;
return c;
}
int main()
{
//freopen("in.txt","r",stdin);
int n;
BigInteger a,b,c;
while(cin>>n)
{
if(n==0 || n==1)
printf("1\n");
else
{
a.num[0]=a.len=1;
b.num[0]=b.len=1;
c.len=0;
for(int i=2; i<=n; i++)
{
c=add(add(a,a),b);
a=b;
b=c;
}
for(int i=c.len-1;i>=0;i--)
printf("%d",c.num[i]);
printf("\n");
}
}
return 0;
}
java
import java.math.BigInteger;
import java.util.Scanner; public class Main { public static void main(String args[]) {
int n;
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
n = scanner.nextInt();
BigInteger a = BigInteger.ONE;
BigInteger b = BigInteger.valueOf(3);
if (n == 1 || n == 0)
System.out.println(a);
else if (n == 2)
System.out.println(b);
else {
BigInteger ans = BigInteger.ZERO;
for (int i = 0; i < n - 2; i++) {
ans = a.multiply(BigInteger.valueOf(2)).add(b);
a = b;
b = ans;
}
System.out.println(ans);
}
}
} }
POJ 2506 Tiling dp+大数 水题的更多相关文章
- poj 3080 Blue Jeans(水题 暴搜)
题目:http://poj.org/problem?id=3080 水题,暴搜 #include <iostream> #include<cstdio> #include< ...
- HDU-1042-N!(Java大法好 && HDU大数水题)
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Subm ...
- POJ 3176 Cow Bowling (水题DP)
题意:给定一个金字塔,第 i 行有 i 个数,从最上面走下来,只能相邻的层数,问你最大的和. 析:真是水题,学过DP的都会,就不说了. 代码如下: #include <cstdio> #i ...
- POJ 3984 - 迷宫问题 - [BFS水题]
题目链接:http://poj.org/problem?id=3984 Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, ...
- DP+贪心水题合集_C++
本文含有原创题,涉及版权利益问题,严禁转载,违者追究法律责任 本次是最后一篇免费的考试题解,以后的考试题目以及题解将会以付费的方式阅读,题目质量可以拿本次作为参考 本来半个月前就已经搞得差不多了,然后 ...
- poj 1007:DNA Sorting(水题,字符串逆序数排序)
DNA Sorting Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 80832 Accepted: 32533 Des ...
- poj 1004:Financial Management(水题,求平均数)
Financial Management Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 126087 Accepted: ...
- poj 1658 Eva's Problem(水题)
一.Description Eva的家庭作业里有很多数列填空练习.填空练习的要求是:已知数列的前四项,填出第五项.因为已经知道这些数列只可能是等差或等比数列,她决定写一个程序来完成这些练习. Inpu ...
- poj 2506 Tiling(递推 大数)
题目:http://poj.org/problem?id=2506 题解:f[n]=f[n-2]*2+f[n-1],主要是大数的相加; 以前做过了的 #include<stdio.h> # ...
随机推荐
- IEEE754标准
以下计算按规格化规定: S:符号位 M:分数值 E:指数偏移值 单精度浮点数(32bit): NUM_single = (-1)^S * 1.M * 2^(E-127) 双精度浮点数(64b ...
- Lua的string库函数列表
基本函数 函数 描述 示例 结果 len 计算字符串长度 string.len("abcd") 4 rep 返回字符串s的n个拷贝 string.rep("abcd&qu ...
- 并发王者课-青铜7:顺藤摸瓜-如何从synchronized中的锁认识Monitor
在前面的文章中,我们已经体验过synchronized的用法,并对锁的概念和原理做了简单的介绍.然而,你可能已经察觉到,有一个概念似乎总是和synchronized.锁这两个概念如影相随,很多人也比较 ...
- Zabbix企业分布式监控工具
前言:在工作中常常需要对服务器进行监控,但是要选择一款合适监控软件可不容易,今天介绍下zabbix这款监控软件 一.Zabbix介绍1.Zabbix是一个企业级的.开源的.分布式的监控套件2.Zabb ...
- pytest - 打标记:mark功能
对用例打标记,运行的时候,只运行打标记的用例.如冒烟测试 打标记步骤 1.先注册标记名 在配置文件:pytest.ini 注册标记名,注意必须是这个文件名 标签名加冒号后面可以写说明,必须是英文 2. ...
- Python+Selenium学习笔记16 - unittest单元测试框架
unittest单元测试框架包括 Test Case, Test Suite, Test Runner, Test Fixture Test Cases 组成Test Suite, Test Run ...
- Java | Stream流、泛型、多线程 | 整理自用
1.lambda 表达式 lambda 的延迟执行 可以对程序进行优化,尤其是使用 if {} else {} 条件判断,先判断条件是否成立,再传入计算好的参数. functionName( para ...
- DDD中聚合、聚合根的含义以及作用
聚合与聚合根的含义 聚合: 聚合往往是一些实体为了某项业务而聚类在一起形成的集合 , 举个例子, 社会是由一个个的个体组成的,象征着我们每一个人.随着社会的发展,慢慢出现了社团.机构.部门等组织,我们 ...
- 适用于CUDA GPU的Numba 随机数生成
适用于CUDA GPU的Numba 随机数生成 随机数生成 Numba提供了可以在GPU上执行的随机数生成算法.由于NVIDIA如何实现cuRAND的技术问题,Numba的GPU随机数生成器并非基于c ...
- 使用nGraph的Intel®Xeon®上的高性能TensorFlow
使用nGraph的IntelXeon上的高性能TensorFlow High-performance TensorFlow* on Intel Xeon Using nGraph 最近宣布了nGrap ...