dp练习(9)——最大乘积-程序员宅基地

技术标签: 数据结构与算法  

1017 乘积最大

 

2000年NOIP全国联赛普及组NOIP全国联赛提高组

 时间限制: 1 s
 空间限制: 128000 KB
 题目等级 : 黄金 Gold
 
 
 
题目描述  Description

今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:

 

设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。

 

同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:

 

有一个数字串:312, 当N=3,K=1时会有以下两种分法:

 

1)  3*12=36

2)  31*2=62

  

   这时,符合题目要求的结果是:31*2=62

 

   现在,请你帮助你的好朋友XZ设计一个程序,求得正确的答案。

输入描述  Input Description

   程序的输入共有两行:

   第一行共有2个自然数N,K(6≤N≤40,1≤K≤6)

   第二行是一个长度为N的数字串。

输出描述  Output Description

   结果显示在屏幕上,相对于输入,应输出所求得的最大乘积(一个自然数)。

样例输入  Sample Input

4  2

1231

样例输出  Sample Output

62

数据范围及提示  Data Size & Hint

本题由于比较老,数据实际也比较小,用long long 即可通过

#include<bits/stdc++.h>
using namespace std;

long long dp[1005][1005];
char s[1005];

long long SUM(int j,int i)
{
    long long sum = 0;
    for(int t=j-1;t < i;t++)
    {
        sum = sum * 10 + (s[t] - '0');
    }
    return sum;
}

int main()
{
    int n,k;
    cin >> n >> k;
    cin >> s;
    memset(dp,0, sizeof(dp));
    for(int i=1;i <= n;i++)
    {
        dp[i][0] = SUM(1,i);
//        cout << dp[i][0] << endl;
    }

    for(int h=1;h <= k;h++)
    {
        for(int i=1;i <= n;i++)
        {
            for(int j=1;j <= i;j++)
            {
                dp[i][h] = max(dp[i][h],dp[j][h-1] * SUM(j+1,i));
            }
        }
    }

//    for(int i=0;i < 5;i++)
//    {
//        for(int j=0;j < 5;j++)
//            cout << dp[i][j] << " ";
//        cout << endl;
//    }
    cout << dp[n][k] << endl;


    return 0;
}

隔了一天重写一遍,写的倒是很快,基本都是背出来的,不是自己想出来的,还是要加深理解,不要当一个模板战士。

转载于:https://www.cnblogs.com/cunyusup/p/8352629.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30807779/article/details/96285650

智能推荐

python colorbar xtick locator_python – matplotlib中colorbar tick标签的旋转-程序员宅基地

文章浏览阅读471次。我想旋转颜色条刻度标签,使它们垂直读取而不是水平读取.我已经尝试了很多变化,我可以想到使用cbar.ax.set_xticklabels和cbar.ax.ticklabel_format,依此类推,旋转=’垂直’,但还没有完全落地.我在下面提供了一个MWE:import numpy as npimport matplotlib.pyplot as plt#example functionx,y =..._x = np.linspace(-10, 10, 200)

大数据入门_大数据入门吧-程序员宅基地

文章浏览阅读1k次,点赞2次,收藏7次。hadoop伪分布模式搭建完成_大数据入门吧

linux下(centos7)fisheye与crucible破解教程--亲测有用_crucible 激活-程序员宅基地

文章浏览阅读733次。这里写自定义目录标题安装步骤:下载好压缩包,解压后直接运行bin目录下的start.sh,然后浏览器IP打开即可具体破解和安装的下载包稍后上传破解步骤:第一步:下载好安装包后,先将lib下atlassian-extras-2.5.jar文件名更改为atlassian-extras-2.3.1-SNAPSHOT.jar,因为破解程序目前我只找到2.3.1的破解,改名才能继续往下走!第三步:打开破解包文件夹,运行./fisheye_keygen.sh找到lib下刚才改名的文件可以看到破解软_crucible 激活

DR模式LVS负载均衡实战部署_lvs dr 搭建负载均衡实战-程序员宅基地

文章浏览阅读120次。目录 一、LVS-DR工作原理1、数据包流向分析2、DR模式的特点 二、LVS-DR中的ARP问题三、LVS负载均衡DR模式群集部署1、部署共享存储2、配置节点服务器3、配置负载调度器4、测试验证 一、LVS-DR工作原理 1、数据包流向分析 第一步:客户端发送请求到 Director Server (负载均衡器),请求的数据报文到达内核空间。 数据报文 源 IP ------客户端的 IP目标 IP ------ VIP源 MAC ------客户端的 MAC目的 .._lvs dr 搭建负载均衡实战

vue.js用cdn引入_vue-danmaku cnd引入-程序员宅基地

文章浏览阅读893次。<!DOCTYPE html><html lang="en"><head> <title></title> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script><!-- 引入样式 --><link rel="stylesheet" href="https://unpkg.com/element-_vue-danmaku cnd引入

中国IT技术人员,是否适合新加坡发展-程序员宅基地

文章浏览阅读963次。友情提醒,本文彻头彻尾都是广告,如果不能接受,非常抱歉,烦请关闭本页。嗯,其实是两份广告,第一份是我自己的。前段时间有人说,知乎live是个红利期,其实我看到了,但是,唉..._新加坡it人员回国有没有优势

随便推点

查看sqlserver的端口号-程序员宅基地

文章浏览阅读1.8k次。背景  这几天想写一个使用java连接sqlserver的数据库连接测试程序。但是在查看数据库连接字符格式以后发现需要sqlserver数据库服务的端口号。在安装sqlserver的时候也没有提到端口号的问题,以前安装mysql的时候倒是见到过3306这个端口号,安装oracle的时候1521这个端口号也没有看到。不过oracle连接的时候都用的是1521,比如oracle的的数据库连接字符串..._sql server 中查看 8080端口 命令

JavaScript 复制粘贴技巧_js怎么获取粘贴内容数据-程序员宅基地

文章浏览阅读998次。在日常业务开发,比如复制后增加版权信息,点击复制,等场景中需要进行复制粘贴的操作,以下是几种实现方案。Clipboard APIClipboard API 提供了响应剪贴板命令(剪切、复制和粘贴)与异步读写系统剪贴板的能力。从权限 API (Permissions API) 获取权限之后,才能访问剪贴板内容;如果用户没有授予权限,则不允许读取剪贴板内容。可以使用全局的 Navigator.clipboard 来访问剪贴板。Navigator.clipboard 属性返回 Clipboard 对象,所有操作都_js怎么获取粘贴内容数据

只需要5秒就能克隆出你的声音_声音克隆-程序员宅基地

文章浏览阅读1.8w次,点赞23次,收藏234次。导读只需要一段5秒钟的录音,就能将其他的文字转换成你的声音。Real-Time-Voice-Cloning该项目目前在git上以及接近30k的星,作者将克隆后的效果已经上传到youtube演示视频。遗憾的是这个项目只支持英文。最近从这个项目中发展了一个中文的分支Realtime-Voice-Clone-Chinese,作者已经在效果上传到了bilibili演示视频下面我就教大家如何在你的电脑上使用这个项目运行环境系统:Windows、LinuxPython版本:3.7+pytorch版本:_声音克隆

前端开源实战项目,大厂级别_前端工程师app软件项目-程序员宅基地

文章浏览阅读2.5k次,点赞2次,收藏27次。强烈推荐 G..._前端工程师app软件项目

关联规则可视化python语言_患者信息可视化及关联规则可视化-程序员宅基地

文章浏览阅读821次。源码链接:https://github.com/yemahei/test患者信息可视化及关联规则可视化系统的实现一、系统需求分析藏医药学是我国传统民族医药学宝库中一颗璀璨的明珠,在藏族人民漫长的生产、生活实践中,其系统的理论和独特的临床疗效及用药特色,为藏族人们繁衍生息、保障生命健康做出了重要贡献,也越来越受到世人的关注。由于平时藏医院患者数量庞大,会产生大量的病人信息,由于信息都是表格或者是其它..._关联规则可视化python语言_关联规则可视化

深度学习系列资料总结_cellpose 2.0-程序员宅基地

文章浏览阅读2.2w次,点赞126次,收藏467次。说明本系列深度学习资料集合包含机器学习、深度学习等各系列教程,主要以计算机视觉资料为主,包括图像识别、分类、检测、分割等,内容参考Github及网络资源,仅供个人学习。深度学习定义一般是指通过训练多层网络结构对未知数据进行分类或回归深度学习分类有监督学习方法——深度前馈网络、卷积神经网络、循环神经网络等;无监督学习方法——深度信念网、深度玻尔兹曼机,深度自编码器等。手写机器学习笔记github机器学习算法公式推导以及numpy实现github人工智能相关术语link。.................._cellpose 2.0