zoukankan      html  css  js  c++  java
  • 动态规划 简单的分割问题的解决方案钢棒

    代码第一版 :
    #include <iostream>
    using namespace std;
    
    
    int max(int a,int b)
    {
        if(a>=b)return a;
        else return b;
    }
    
    
    int cut_rod(int *p,int n)
    {
        int q=NULL;
        if(n==0)return 0;
        else for(int i=0;i<n;i++)
        {
            q=max(q,p[i]+cut_rod(p,n-1-i));
        }
        return q;
    }
    
    int main()
    {
        int p[]={1,5,8,9,10,17,17,20,24,30};
        int n;
        cout<<"Please input a int number"<<endl;
        cin>>n;
        int r=cut_rod(p,n);
        cout<<r<<endl;
    
    
        return 0;
    }

    这版代码 由于p[]的原因,仅仅能对1~10求解。

    所以对他进行小小的改进

    第二版

    #include <iostream>
    using namespace std;
    #define NIL (-0x7fffffff-1)
    
    int max(int a,int b)
    {
        if(a>=b)
            return a;
        else
            return b;
    }
    
    
    int cut_rod(int *p,int n)
    {
    
        if(n==0)
            return 0;
        int q=NIL;
        if(n<=10){
            for(int i=0;i<n;i++)
            {
                q=max(q,p[i]+cut_rod(p,n-1-i));
    
            }
            return q;
            }else
                if(n>10){
    
                    int b=n/10;
                    n=n-b*10;
                    if(n==0)
                        q=0;
                    for(int i=0;i<n;i++)
                    {
                        q=max(q,p[i]+cut_rod(p,n-1-i));
                    }
                return q+b*30;
            }
    }
    
    int main()
    {
        int p[]={1,5,8,9,10,17,17,20,24,30};
        int n;
        cout<<"Please input a int number"<<endl;
        cin>>n;
        int r=cut_rod(p,n);
        cout<<r<<endl;
    
        return 0;
    }
    

    这些是动态编程——简单的分割问题的解决方案钢棒

  • 相关阅读:
    CSS: 三栏布局
    CSS: 实现两栏布局,左边固定,右边自适应的4种方法
    css清除浮动
    浏览器解析时间线
    @Valid解决无法校验List问题
    Docker+Jenkins+Git+Maven实现Springboot项目自动化部署
    Git安装(CentOS)
    Jenkins安装
    Docker安装(Centos)
    Maven安装(Linux)
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4566700.html
Copyright © 2011-2022 走看看