zoukankan      html  css  js  c++  java
  • 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;
      }
    }
  • 相关阅读:
    分布式计算原理
    消息的有序性
    CAP再解释
    数据建模
    领导层级的跨越
    如何上云|什么是多机房多活架构
    mysql导出导入数据
    Qt 串口 封装好的类 直接使用
    C++ 在类的定义时初始化非静态变量
    Qt error C3646: 未知重写说明符
  • 原文地址:https://www.cnblogs.com/dowson/p/3287041.html
Copyright © 2011-2022 走看看