Tiling_easy version

Tiling_easy version

思路:关于dp这种东西,有一点必须要想明白,就是状态与状态之间的转换关系,就比如说要求5个骨牌的方案数,因为有两种骨牌,那么可以用dp[3]+两个横着的骨牌或者一个2*2的骨牌,或者是dp[4]+一个竖着的1*2骨牌来构成,那么递推的公式就是dp[5]=dp[3]*2+dp[4]

代码:

// Created by CAD on 2019/10/10.
#include <bits/stdc++.h>
using namespace std;

int dp[35];
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t;  cin>>t;
    dp[1]=1,dp[2]=3;
    for(int i=3;i<=30;++i)
        dp[i]=dp[i-2]*2+dp[i-1];
    while(t--)
    {
        int n;  cin>>n;
        cout<<dp[n]<<endl;
    }
    return 0;
}

原文地址:https://www.cnblogs.com/CADCADCAD/p/11649995.html

时间: 2024-10-14 01:13:50

Tiling_easy version的相关文章

hdu 2501 Tiling_easy version 递推

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2501 题目分析:已知有2*1,2*2,两种型号的瓷砖,要求铺满2*n的格子有多少种方法.可以考虑最左边一列的铺法,竖着铺的话,右边为f(n-1),只有一种铺法:横着铺的话,可以用一块2*2或者两块2*1的横铺, 右边为f(n-2), 有两种. 故递推公式为:f(n) = f(n-1) + 2*f(n-2) /*Tiling_easy version Time Limit: 1000/1000 MS

HDU - 2501 - Tiling_easy version (简单递推关系!!)

Tiling_easy version Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5516    Accepted Submission(s): 4347 Problem Description 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法

(hdu step 3.1.5)Tiling_easy version(求用2*1、2*2两种骨格铺满2*n的网格的方案数)

在写题解之前给自己打一下广告哈~..抱歉了,希望大家多多支持我在CSDN的视频课程,地址如下: http://edu.csdn.net/course/detail/209 题目: Tiling_easy version Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 515 Accepted Submission(s): 447   Prob

Tiling_easy version(填2 x N的格子的种类)

E - Tiling_easy version 题目大意: 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法. 一个简单的dp问题: dp[i+2]=dp[i+1]+2*dp[i]; 初始条件:dp[1]=1;dp[2]=3; 一开始没考虑清楚,把递推关系写成dp[i+2]=3*dp[i]; 解释一下dp[i+2]=dp[i+1]+2*dp[i] dp[i+2]相对于dp[i]正好多一个2x2的正方形,当前

Hdoj 2501.Tiling_easy version 题解

Problem Description 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设的方法. Input 输入的第一行包含一个正整数T(T<=20),表示一共有 T组数据,接着是T行数据,每行包含一个正整数N(N<=30),表示网格的大小是2行N列. Output 输出一共有多少种铺设的方法,每组数据的输出占一行. Sample Input 3 2 8 12 Sample Output 3 171 2731

1504071639-hd-Tiling_easy version

 Tiling_easy version Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5910    Accepted Submission(s): 4646 Problem Description 有一个大小是 2 x n 的网格,现在需要用2种规格的骨牌铺满,骨牌规格分别是 2 x 1 和 2 x 2,请计算一共有多少种铺设

maven -- 问题解决(三)Java compiler level does not match the version of the installed Java project facet

问题: Java compiler level does not match the version of the installed Java project facet 解决方法如下: properties->Java Compiler,修改JDK版本,然后Apply

异常:Unsupported major.minor version 52.0 (Use --stacktrace to see the full trace)

异常:Unsupported major.minor version 52.0 (Use --stacktrace to see the full trace) 正在写一个功能,更新了同事提交的代码之后,出现了如下错误: 1 Fatal error during compilation org.apache.tools.ant.BuildException: java.lang.UnsupportedClassVersionError: org/elasticsearch/index/query

How to Downgrade VMware ESXi 5.5 Virtual Machine Hardware Version to 9 from 10

Shut down the virtual machine in the vSphere client. Remove your virtual machine from the ESXi inventory. Browse your Datastore and find the virtual machine's .vmx file.   Download it to your desktop. Open the .vmx file in Notepad or your favorite te