1 条题解

  • 0
    @ 2023-1-26 17:56:15

    这道题除了我以外居然还没有人作对,那我来发一个题解扒

    注意本题是求值问题,而非求最优解问题,不需要逐个输出各种情况,仅需输出最优值即可

    算法分析

    1

    所以可以得出如下函数

    1 例如:对于f(6,4)f(6,4)来说 1 计算可得f(6,4)=11f(6,4)=11

    代码

    #include<iostream>
    using namespace std;
    int hf(int x,int y)
    {
      if(x==1||y==1)
      {
        return 1;
    	}
      else if (x<y)
      {
        return hf(x,x);
    	}
      else if(x==y)
      {
        return hf(x,x-1)+1;
    	}
      else
      {
        return hf(x,y-1)+hf(x-y,y);
    	}
    }
    
    int main()
    {
      int n;
      cin>>n;
      cout<<hf(n,n);
      return 0;
    }
    
    • 1

    信息

    ID
    1491
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    5
    已通过
    4
    上传者