zoukankan      html  css  js  c++  java
  • 1910 递归函数

    1910 递归函数

    链接:http://codevs.cn/problem/1910/

     

     时间限制: 1 s
     空间限制: 128000 KB
     
     
     
     
    题目描述 Description

    对于一个递归函数w(a, b, c)。


    如果a <= 0 or b <= 0 or c <= 0就返回值1。


    如果a > 20 or b > 20 or c > 20就返回W(20,20,20)。


    如果a < b并且b < c 就返回w(a, b, c − 1) + w(a, b − 1, c − 1) − w(a, b − 1, c),


    其它别的情况就返回w(a − 1, b, c) + w(a − 1, b − 1, c) + w(a − 1, b, c − 1) − w(a −1, b - 1, c - 1)

    这是个简单的递归函数,但实现起来可能会有些问题。

    输入描述 Input Description

    会有若干行.每行三个数,表示a, b, c。并以−1, −1, −1结束

    输出描述 Output Description

    输出若干行,注意各种中的空格。

    样例输入 Sample Input

    1 1 1
    2 2 2
    -1 -1 -1

    样例输出 Sample Output

    w(1, 1, 1) = 2
    w(2, 2, 2) = 4

    数据范围及提示 Data Size & Hint

    a, b, c < 30, Task < 11

    题解:不能暴力,记忆化搜索

    #include<bits/stdc++.h>
    using namespace std;
    int m[40][40][40];
    int  w(int a,int b,int c){
         if(a<=0||b<=0||c<=0)return m[a][b][c]=1;
         if(m[a][b][c]) return m[a][b][c];
         if(a>20||b>20||c>20)return m[a][b][c]=w(20,20,20);
         if(a<b&&b<c)return m[a][b][c]=w(a, b, c - 1) + w(a, b - 1, c - 1) - w(a, b - 1, c);
         return m[a][b][c]=w(a -1, b, c) + w(a - 1, b - 1, c) + w(a - 1, b, c - 1) - w(a -1, b - 1, c - 1);
     }
    int main(){
        int a,b,c;
        m[0][0][0]=1;
        for(int i=1;i<31;i++)
        for(int j=1;j<31;j++){
            m[i][j][0]=1;m[i][0][j]=1;m[0][i][j]=1;
        }
        while(cin>>a>>b>>c){
            
            if(a==-1&&b==-1&&c==-1)break;
            if(a<=0||b<=0||c<=0)printf("w(%d, %d, %d) = 1
    ",a,b,c);
            else printf("w(%d, %d, %d) = %d
    ",a,b,c,w(a,b,c));
        }
    }
  • 相关阅读:
    Java中怎么控制线程訪问资源的数量
    我的Hook学习笔记
    《编写可读代码的艺术》——简单总结
    Hdu 1016 Prime Ring Problem (素数环经典dfs)
    setsockopt()使用方法(參数具体说明)
    Html5培训之精髓
    [unity3d]unity平台的预处理
    音频编辑大师 3.3 注冊名 注冊码
    linux tar.gz zip 解压缩 压缩命令
    面向对象的三个基本特征
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/7445416.html
Copyright © 2011-2022 走看看