最佳加法表达式(动态规划)

2023-05-16

递归(带备忘的自顶向下法)

/*
题目:有一个由1..9组成的数字串.问如果将m个加
号插入到这个数字串中,在各种可能形成的
表达式中,值最小的那个表达式的值是多少
子问题:将最后面的那个加号放在第i个数字的后面,计算前i个
数字的最佳加法表达式
状态:V(m,n)表示在n个数字中插入m个加号所能形成
的表达式最小值
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int INF = 99999999;
int a[1005],num[1005][1005];
int V(int m,int n)
{
    if(m == 0)//无加号
        return num[1][n];
    else if(n < m+1)//加号过多
        return INF;
    else
    {
        int t = INF;
        for(int i = m;i <= n-1;i++)
           t = min(t, V(m-1,i)+num[i+1][n]);
        return t;
    }
}
int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        for(int i = 1;i <= n;i++)
            scanf("%d",&a[i]);
        //预处理,计算i到j数字串组成的数字
        for(int i = 1;i <= n;i++)
        {
            num[i][i] = a[i];//只有一个数字
            for(int j = i+1;j <= n;j++)
            {
                num[i][j] = num[i][j-1]*10 + a[j];
            }
        }
        cout<< V(m,n) <<endl;
    }
    return 0;
}

递推(自底向上法)

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int INF = 0x3f3f3f3f;
const int N = 1005;
int a[N],num[N][N],dp[N][N];
int main()
{
    int n,m;
    while(~scanf("%d%d",&n,&m))
    {
        for(int i = 1;i <= n;i++)
            scanf("%d",&a[i]);
        //预处理,计算i到j数字串组成的数字
        for(int i = 1;i <= n;i++)
        {
            num[i][i] = a[i];//只有一个数字
            for(int j = i+1;j <= n;j++)
            {
                num[i][j] = num[i][j-1]*10 + a[j];
            }
        }

        memset(dp,0x3f,sizeof(dp));
        for(int i = 1;i <= n;i++)
            dp[0][i] = num[1][i];//无加号时
        for(int i = 1;i <= m;i++)
            for(int j = i;j <= n;j++)
                for(int k = i;k <= j;k++)
                    dp[i][j] = min(dp[i][j],dp[i-1][k] + num[k+1][j]);
        cout<< dp[m][n] <<endl;
    }
    return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

最佳加法表达式(动态规划) 的相关文章

  • NAS系列 硬件选择

    转自我的博客文章https blognas hwb0307 com nas 3224 xff0c 内容更新仅在个人博客可见 欢迎关注 xff01 前言 经过 NAS系列 为什么你需要一台NAS 的简单介绍 xff0c 如果你也决定像我一样组
  • NAS系列 硬件组装

    转自我的博客文章https blognas hwb0307 com nas 3260 xff0c 内容更新仅在个人博客可见 欢迎关注 xff01 前言 之前我在 NAS系列 硬件选择 里讲述了自己为了升级NAS如何选配硬件 本节我大概说一些
  • Docker系列 基于OpenAI API自建ChatGPT

    转自我的博客文章https blognas hwb0307 com linux docker 4201 xff0c 内容更新仅在个人博客可见 欢迎关注 xff01 前言 我用帐号 密码使用chatGPT已经有一段时间 但是 xff0c 我有
  • Thinkpad E431 解决无线网卡无法开启

    Thinkpad E431无线网卡无法开启 现象再现 xff1a Thinkpad E431新机 xff0c 原装win8系统 xff0c 使用win7光盘换为win7系统 xff0c 官方下载驱动程序 xff0c 安装后无线上网正常 点击
  • 华为OD真题-字符串重新排列

    描述 给定一个字符串s xff0c s包括以空格分隔的若干个单词 xff0c 请求s进行如下处理后输出 xff1a 单词内部调整 xff1a 对每个单词字母重新按字典序排序 单词间顺序调整 xff1a 统计每个单词出现的次数 xff0c 并
  • 如何在CSDN博客中所贴的代码进行【代码块】显示

    笔者学习android开发有半年多了 xff0c 而CSDN也陪伴我半年有余 xff0c 在开发全国移动终端参赛项目的时候 xff0c 就在CSDN上看别人的博客 xff0c 解决问题 xff0c 下载好的代码资源研究 xff0c 可谓CS
  • Ubuntu 16.04 安装 高版本远程桌面xrdp+xorg

    Ubuntu 16 04 安装 高版本远程桌面xrdp 43 xorg Ubuntu 16 04提供的官方源里面只能安装0 6 1版本的xrdp xff0c 大概长这个样子 这个版本的远程桌面有很多问题 xff0c 首先是无法在本地电脑和远
  • 2021.04.03-2021.04.04 省选模拟 总结

    地址 Day 1 xff1a https gmoj net senior contest home 3355 Day 2 xff1a https gmoj net senior contest home 3356 总结 两天都考得不好 xf
  • Linux 文件系统扩展属性

    扩展属性 xff08 xattrs xff09 提供了一个机制用来将 键 值 对永久地关联到文件 xff0c 让现有的文件系统得以支持在原始设计中未提供的功能 扩展属性是文件系统不可知论者 xff0c 应用程序可以通过一个标准的接口来操纵他
  • linux内核模块Makefile

    方式一 xff1a 当linux内核驱动模块代码位于内核源码目录树外部时 xff0c 以helloworld模块为例 xff0c Makefile 写法如下 xff1a warning KERNELRELEASE 61 KERNELRELE
  • PHP调用C语言实现接口方法

    一 环境准备 环境 xff1a CentOS Linux release 7 3 1611 Core PHP 5 4 16 安装php 查看php版本 yum install php php devel php v 二 so 动态库封装 r
  • dd if=/dev/zero of=的含义是什么?Linux 下的dd命令使用详解

    xfeff xfeff dd if 61 dev zero of 61 的含义是什么 xff1f Linux 下的dd命令使用详解 转载 xff1a http blog sina com cn s blog 8b5bb24f01016y3o
  • mysql 错 Could not open JDBC Connection for transaction; nested exception is java.sql.SQLExceptio

    运行时报com mysql jdbc exceptions jdbc4 MySQLSyntaxErrorException Unknown character set 39 utf8mb4 39 导致 浏览器报Could not open
  • axios.create、拦截器、取消请求

    axios create config 根据指定配置创建一个新的 axios 也就就每个新 axios 都有自己的配置新 axios 只是没有取消请求和批量发请求的方法 其它所有语法都是一致的为什么要设计这个语法 1 需求 项目中有部分接口
  • 启明云端分享:产品应用上,怎么选型ESP-12F\ESP-12E\ESP-12S\ESP-07S这四个模块

    提示 xff1a ESP 12F ESP 12E ESP 12S ESP 07S四个模块怎么选型呢 前言 ESP 12F ESP 12E ESP 12S ESP 07S这四个模块采用的都是乐鑫ESP8266芯片封装的模块 其中ESP 12F
  • echarts图表分区域--显示不同颜色(markArea)

    项目需要这样的效果 xff0c 在y轴数值大于50的时候 xff0c 向上的区域显示不同的颜色 xff1a 查阅官方文档有一个属性markArea xff0c 是标记背景区域的 xff0c 官方是这样配置的 xff1a 因为我有多个色块 x
  • ChatGPT自我分析

    作者 xff1a chatgpt ChatGPT 是一个由 GPT 技术驱动的聊天机器人 xff0c 它能够回答各种问题 提供信息和建议 生成文本和完成其他任务 ChatGPT 是一个深度学习模型 xff0c 是人工智能技术中的一种 在本博
  • Visutal Studio2022 如何使用Github copilot

    visual studio 2019 升级最新版本的2019也并没有搜索到 xff0c 直接升级到visual studio 2022 xff0c 看发布介绍也是2022的copilot Copilot 是一款由 OpenAI 开发的基于
  • 音视频领域的经典书籍推荐

    数字视频处理基础 xff08 Digital Video Processing xff09 xff1a 作者A Murat Tekalp xff0c 讲述数字视频处理的基本概念和技术 xff0c 包括视频编码 图像分析 视频通信和多媒体系统
  • 音视频专家

    作为一名顶级的音视频专家 xff0c 需要在音视频领域拥有非常深入的技术理解和丰富的实践经验 xff0c 并且要能够在行业内产生深远的影响和贡献 以下是更详细的顶级音视频专家提升计划 xff1a 1 深入研究音视频核心技术 作为顶级音视频专

随机推荐

  • 2022年新兴技术趋势

    图片源自 xff1a 2022年Gartner新兴技术成熟度曲线公布最新技术趋势 Gartner中国 人工智能和机器学习技术仍处于高峰 xff0c 但已经开始进入成熟期 这表明人工智能和机器学习技术已经不再是新颖的概念 xff0c 而是逐渐
  • 白镜1-1

    2029年 xff0c 人类社会已经进入了全球化 数字化 智能化的新时代 xff0c 各国政府和企业已经开始在深海和太空等地方进行勘探和开采 同时 xff0c 在不断提升的科技水平下 xff0c 人类已经开始了向宇宙的探索和移民 在这样一个
  • Jetson查看GPU显存信息

    pip3 install jetson stats jtop 然后运行jtop命令即可 xff0c jetson xavier nx 的查看命令并不是nvidia smi xff0c 所以运行nvidia smi并没有效果 xff01 效果
  • 并不包含调试信息(未加载任何符号)

    今天调试一C 43 43 程序 xff0c 按下F5 xff0c 老是弹出一对话框显示信息 xff1a debugging information for 39 myproject exe 39 cannot be found or doe
  • hdu 1358 Period KMP

    题目大意 xff1a 对于一个字符串 xff0c 找由循环字符串组成的位置 xff0c 并输出最多循环了几次 xff0c 比如两个样例 xff0c 第一个是 aaa xff0c 所以在第二个位置由子串a循环两次得到 xff0c 第三个位置由
  • mysql max_connections 最大连接数,用户数

    设置max connections xff08 这个办法在debian xff0b mysql Ver 12 22 Distrib 4 0 22 for pc linux i386 里实验了 xff09 设置办法是在my cnf文件中 xf
  • dll文件加载运行加载的14001错误,由于应用程序配置不正确,应用程序未能启动

    最近在处理项目问题的的时候发现了这么一个问题 xff0c 就是我们的程序在调用第三方提供的dll文件的时候在一台机器上面会报14001的错误 xff0c 但是在另一台机器上面不会 两台机器上面的操作系统是相同的 针对这个问题和这个错误码 x
  • Python框架下django 的并发和多线程

    django 的并发能力真的是令人担忧 xff0c django本身框架下只有一个线程在处理请求 xff0c 任何一个请求阻塞 xff0c 就会影响另一个情感求的响应 xff0c 尤其是涉及到IO操作时 xff0c 基于框架下开发的视图的响
  • Linux查看电源状态指令

    dmidecode命令可以让你在Linux系统下获取有关硬件方面的信息 dmidecode的作用是将DMI数据库中的信息解码 xff0c 以可读的文本方式显示 由于DMI信息可以人为修改 xff0c 因此里面的信息不一定是系统准确的信息 d
  • HashCode()和equals()的区别

    文章目录 HashCode简介equals简介1 类中重写HashCode和equals方法比较两个对象是否相等2 HashSet保证元素的唯一性 HashCode简介 hashCode 方法的作用是获取哈希码 xff0c 返回的是一个in
  • 远算CAE平台-基于云平台的Hypermesh与Abaqus联合仿真(轴承底座)

    小编在这里展示一个Hypermesh与Abaqus的联合仿真案例 xff1a 本次联合仿真使用Hypermesh进行前处理 xff0c 然后在Abaqus中设置并计算 xff0c 最后使用Hyperview查看结果 1 在Hypermesh
  • ubuntu OPT权限

    首先opt是系统文件夹 xff0c 权限被保护起来了需要一定的权限才可以操作 1 打开终端 输入如下命令 2 sudo chmod 777 opt 然后回车 xff0c 这时候会提示输入管理员密码密码 xff0c 这样opt就可以创建文件了
  • 看这篇就够了——ubuntu系统中的cuda cudnn cudatookit及pytorch使用

    一 基本概念 1 1 nvidia独立显卡 独立显卡是指以独立板卡形式存在 xff0c 可在具备显卡接口的主板上自由插拔的显卡 独立显卡具备单独的显存 xff0c 不占用系统内存 xff0c 而且技术上领先于集成显卡 xff0c 能够提供更
  • 虚拟机中ubuntu系统无法正常连接网络

    网络连接标志不见 xff0c 或者链接状态无 xff0c 或者如下图 解决办法1 xff1a 桥连接模式 桥连接模式就是直接使用物理主机的网络 假设物理主机在局域网中 xff0c IP地址为192 168 20 24 24 xff0c 因此
  • golang interface 使用

    interface 是方法签名的集合 xff0c interface 类型的值可以存储任何类型变量的值的类型 学到的一个问题 xff0c 判断 interface 类型的变量不能只判断 value xff0c 需要判断 type 和 val
  • 前端自动化构建工具搭建基于Ubuntu20.04:第五步ssh免密登录

    jenkins服务器与前端资源运行服务器之间实现免密登录 jenkins服务器 A 前端资源运行服务器 B 生成ssh密钥 span class token comment 邮箱信息根据自己情况选择 一路回车生成下面的图片内容 span s
  • 常用图算法(C语言)

    最短路 Dijkstra 题目 xff1a 743 网络延迟时间 邻接矩阵 xff1a span class token keyword int span span class token function min span span cl
  • POJ初级分类 贪心专题 poj1328 POJ2109 POJ 2586

    题目1328 代码及解释 xff1a POJ1328 Radar Installation 题目大意 xff1a 有一条海岸线 xff0c 一边是海岸 xff0c 一边是大海 xff1b 海中有一些小岛 xff0c 我们要建造一些雷达 xf
  • 离散数学第六章 图

    图 一 图的基本概念 1 无向图与有向图 此处要熟悉一下无序对与无序积的概念 xff1b 集合中有元素重复出现的话就称为多重集合 xff0c 简称多重集 xff0c 元素在多重集合中出现的次数称为该元素的重复度 xff1b 无向图 xff1
  • 最佳加法表达式(动态规划)

    递归 xff08 带备忘的自顶向下法 xff09 题目 xff1a 有一个由1 9组成的数字串 问如果将m个加 号插入到这个数字串中 在各种可能形成的 表达式中 xff0c 值最小的那个表达式的值是多少 子问题 xff1a 将最后面的那个加