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));
        }
    }
  • 相关阅读:
    正则表达式
    浏览器 User-Agent 大全
    python3爬虫开发实战 第六课 爬虫基本流程
    python3爬虫开发实战 第五课 常用库的安装
    python3爬虫开发实战 第四课 MySQL
    python3爬虫开发实战 第三课 Redis数据库
    python3爬虫开发实战 第二课 MongoDB安装
    python3爬虫开发实战 第一课 python安装和Pycharm安装
    批处理——数据库
    Aop所需包
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/7445416.html
Copyright © 2011-2022 走看看