zoukankan      html  css  js  c++  java
  • 骨牌铺方格

    骨牌铺方格

    在1×n的一个长方形方格中,用1×1、1×2、1×3的骨牌铺满方格,输入n ,输出铺放方案的总数。 例如n=3时,为1× 3方格,骨牌的铺放方案有四种,如下图:

    Input

    输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是1×n

    Output

    对于每个测试实例,请输出铺放方案的总数,每个实例的输出占一行。

    Sample Input

    1
    2
    3
    0

    Sample Output

     1
     2
     4
    # include<stdio.h>
    int d[3]={1,2,3};
    int n,cnt;
    void DFS(int index)
    {
        int i;
        if(index>n)return;
        if(index==n)
        {
            cnt++;
            return;
        }
        for(i=0;i<=2;i++)
            DFS(index+d[i]);
    }
    int main()
    {
        while(scanf("%d",&n)&&n)
        {
            cnt=0;
            DFS(0);
            printf("%d
    ",cnt);
        }
        return 0;
    }
    

      超时了

    规律

    # include<stdio.h>
    int d[3]={1,2,3};
    int n,cnt;
    void DFS(int index)
    {
        int i;
        if(index>n)return;
        if(index==n)
        {
            cnt++;
            return;
        }
        for(i=0;i<=2;i++)
            DFS(index+d[i]);
    }
    int main()
    {
        while(scanf("%d",&n)&&n)
        {
            cnt=0;
            DFS(0);
            printf("%d
    ",cnt);
        }
        return 0;
    }
  • 相关阅读:
    Catalan数
    完全背包
    日期问题
    01背包
    NOJ2076
    858. Prim算法求最小生成树
    839. 模拟堆
    850. Dijkstra求最短路 II
    849. Dijkstra求最短路 I
    859. Kruskal算法求最小生成树
  • 原文地址:https://www.cnblogs.com/locojyw/p/3704857.html
Copyright © 2011-2022 走看看