动态规划 简单的分割问题的解决方案钢棒

动态规划 简单的分割问题的解决方案钢棒

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

全栈程序员社区此处内容已经被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“全栈程序员社区”或者“www_javaforall_cn”或者微信扫描右侧二维码都可以关注本站微信公众号。

代码第一版 :

#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;
}

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/117873.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Burpsuite Professional安装及使用教程(抓包)

    Burpsuite Professional安装及使用教程(抓包)先从吾爱破解论坛下载工具:https://down.52pojie.cn/Tools/Network_Analyzer/Burp_Suite_Pro_v1.7.37_Loader_Keygen.zip工具运行需要Java环境,请自行安装,此处不赘述。解压完后双击keygen填一下LicenseText(随意),然后点击Run即可启动BurpSuite的主程序将keygen中得到的License复制粘贴到这里然后点击Next点击这个后出现下一个界面点击Copyreques

    2022年6月5日
    65
  • 树莓派开发环境搭建(树莓派5)

    在本系列文章的第一部分中,我们将在一台树莓派Pi3ModelB上安装并运行一个以太坊区块链客户端。毫无疑问,区块链绝对是当前的热点。之所以会这样,很大程度上是因为比特币以及其他加密货币让很多人一夜暴富。但是,区块链的应用并不仅限于加密货币领域,考虑到其去中心化以及防篡改等特性,区块链技术还可以用到IoT应用中。因此,除了加密货币和安全交易之外,以太坊平台还可以提供一种分布式的计算平台。在这篇…

    2022年4月12日
    179
  • MFC学习——下检测计算机是否联网

    MFC学习——下检测计算机是否联网一个最简单的类方法:Bool IsNetworkAlive( __out LPDWORD lpdwFlags);返回TRUE表示联网,FALSE表示未连接到网络。使用时注意在头文件中加入如下代码:#include <Sensapi.h>#pragma comment(lib, “Sensapi.lib”)函数使用举例: DWORD ws;…

    2022年8月18日
    14
  • kali的Ettercap(0.8.3.1)GUI界面中文化[通俗易懂]

    kali的Ettercap(0.8.3.1)GUI界面中文化[通俗易懂]前言:最近在学kali,学到了dns劫持,上的课老师也是讲了一部分功能,我在网上想找一下别的功能,却发现这个Ettercap居然是20年新版,并没有什么详细信息,我就心血来潮写这篇笔记,让自己以后在复习的时候可以更快的回顾,发出来也让大家一起进步。 启动方法 kali的终端中输入ettercap-G 启动界面 GUI界面 中间人攻击选项 其他选项 Targets Currenttargets Selecttargets

    2022年6月28日
    38
  • dw自动滚动图片_DW图片无缝滚动代码

    dw自动滚动图片_DW图片无缝滚动代码DIV的图片无缝滚动,DIV图片上无缝滚动,DIV图片下无缝滚动,DIV图片左无缝滚动,DIV图片右无缝滚动1.先了解一下对象的几个的属性:innerHTML:设置或获取位于对象起始和结束标签内的HTMLscrollHeight:获取对象的滚动高度。scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶…

    2022年7月18日
    15
  • 精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略

    精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略精通WebAnalytics2.0(4)第二章:选择你的网络分析灵魂伴侣的最佳策略   精通WebAnalytics2.0:用户中心科学与在线统计艺术第二章:选择你的网络分析灵魂伴侣的最佳策略  在WebAnalytics2.0的新…

    2022年6月28日
    18

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号