zoukankan      html  css  js  c++  java
  • 浙江理工大学: 铺地砖(3922)

    浙江理工大学: 铺地砖

    Time Limit: 1 Sec  Memory Limit: 64 MB
    Submit: 2504  Solved: 775

    Description

    元旦过去了,新年大酬宾活动也已经告一段落了。陈盖历望着堆在仓库的瓷砖,很无聊的他把这些瓷砖裁成很多1X1 1X2 1X3的小瓷砖,然后他把这些小瓷砖排在地上画的一个1*n的长方形里。问铺满这个长方形共有多少种方法?

    Input

    首先输入一个整数T,表示有T组测试数据 然后是T行,每行输入1个正整数n(n<=50)

    Output

    对于每个n输出铺的方法种数

    Sample Input

    3
    1
    2
    3

    Sample Output

    1
    2
    4

    dp[i] = dp[i-1] + dp[i-2] + dp[i-3]
    #include<stdio.h>
    int F(int n)
    {
        int i,p;
        p=1;
        for(i=1; i<=n; i++)
        {
            p*=i;
        }
        return p;
    }
    int f(int m,int n)
    {
        int i,p;
        p=1;
        for(i=n-m+1; i<=n; i++)
        {
            p*=i;
        }
        return p;
    }
    int main()
    {
        int T,i,n,count,j,k,l,m;
        scanf("%d",&T);
        for(i=0; i<T; i++)
        {
            count=0;
            scanf("%d",&n);
            for(j=0; j<=50; j++)
            {
                for(k=0; k<=25; k++)
                {
                    for(l=0; l<=16; l++)
                    {
                        if(n==j+2*k+3*l)
                        {
                            m=j+k+l;
                            count+=F(m)-(F(j)-1)*(f(j,m)/F(j))-(F(k)-1)*(f(k,m)/F(k))-(F(l)-1)*(f(l,m)/F(l));
                        }
                    }
    
                }
    
            }
            printf("%d
    ",count);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    HDU
    HDU
    HDU
    HDU
    HDU
    P6146 [USACO20FEB]Help Yourself G 组合数学 DP
    CodeForces
    POJ
    【网络学习】集线器,交换机,路由器的作用
    【Python学习】深拷贝和浅拷贝
  • 原文地址:https://www.cnblogs.com/DWVictor/p/10241160.html
Copyright © 2011-2022 走看看