• hdu1331Function Run Fun


    我一开始是打算通过看数据,查找规律的,但是觉得这样很麻烦,即使看出来,那也没有掌握到其中的思想,加之没有思路,所以我干脆看了人家的答案

    人家的题解

    其实本题函数递归都给我们了。

    但是就是说,要用一般简单的函数的话,就会超时(我试过。)

    然后我参考了别人博客构造一个三维数组"int d[a][b][c]",用来记忆。

    真的用到的是后面

    “  if(d[a][b][c])  return d[a][b][c];”

    只要曾经算过得就可以记下了。减少了计算时间了!

    #include "iostream"
    #include "string.h"
    using namespace std;
    int f[21][21][21];
    int w(int a,int b,int c){
      if(a<=0||b<=0||c<=0)return 1;
      if(a>20||b>20||c>20)return w(20,20,20);
      if(f[a][b][c])return f[a][b][c];
      if(a<b&&b<c)return f[a][b][c]=w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c);
       else return f[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;
      while(cin>>a>>b>>c){
        memset(f,0,sizeof(f));
        if(a==-1&&b==-1&&c==-1)break;
        cout<<"w("<<a<<", "<<b<<", "<<c<<") = "<<w(a,b,c)<<endl;
      }
    }
  • 相关阅读:
    对象的实例化内存布局与访问定位
    方法区

    虚拟机栈
    运行时数据区
    类加载子系统
    JVM和Java体系架构
    JUnit概述
    HTML5CSS3_day03
    HTML5CSS3_day01
  • 原文地址:https://www.cnblogs.com/dowson/p/3287041.html
Copyright © 2020-2023  润新知