专题三 Problem L

来源:互联网 发布:js 中文 unicode 编辑:程序博客网 时间:2024/04/29 23:10
一、题目编号:
          1012
二、简单题意:
         在2×n的一个长方形方格,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数。
三、解题思路形成过程
         用v[i]表示2*i的方格一共有组成的方法数,i块方格就是I-1块方格再加一块。横着铺,如果前面i-1块方格已经铺好,则第I块方格只有一种铺法;竖着铺,前面i-2块方格已经铺好,也只有一种铺法。因此,v[i]=v[i-1]+v[i-2]。另外,我们易知v[1]=1;v[2]=2。
四、感想
         思路并不难想。跟上个题差不多,都是递推。但是第一遍提交后wa了,还是还需要考虑数据是否太大溢出的问题,改为long long类型就a了~
五、AC代码
#include<iostream>
using namespace std;
int main()
{
    long long v[52];
    v[1]=1;
    v[2]=2;
    int n;
    for(int i=3;i<52;i++)
    {
        v[i]=v[i-1]+v[i-2];
    }
    while(cin>>n)
    {
        cout<<v[n]<<endl;
    }
    return 0;
}

0 0
原创粉丝点击