Time Limit: 1 second
Memory Limit: 128 MB

【问题描述】

今年是国际数学联盟确定的“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设计一个程序,求得正确的答案

【输入格式】

第一行共有2个自然数N,K(4≤N≤10,1≤K≤6)
第二行是一个长度为N的数字串。
【输出格式】

输出所求得的最大乘积(一个自然数)。

Sample Input

4 2
1231

Sample Output

62

【题目链接】:http://noi.qz5z.com/viewtask.asp?id=9915

【题解】

设f[i][j]表示前i个数字插入j个乘号的最大值;
前i个数字插入j个乘号很容易搞出来前a个数字插入j+1个乘号的最大值f[a][j+1].
记录第i个数字到第j个数字组成的数字a[i][j]就好;
f[i][k] = max(f[i][k],f[j][k-1]*a[j+1][i]);j∈k..i-1;

【完整代码】

#include <cstdio>
#include <algorithm>
#define LL long longusing namespace std;LL f[12][10];
LL a[12][12];
int n,k;
char s[20];int main()
{//freopen("F:\\rush.txt","r",stdin);scanf("%d%d",&n,&k);scanf("%s",s+1);for (int i = 1;i <= n;i++){LL now = 0;for (int j = i;j <= n;j++){now = now*10+s[j]-'0';a[i][j] = now;}}for (int i = 1;i <= n;i++)f[i][0] = a[1][i];for (int i = 1;i <= k;i++)for (int j = i+1;j <= n;j++)for (int l = i;l <= j-1;l++)f[j][i] = max(f[j][i],f[l][i-1]*a[l+1][j]);printf("%I64d\n",f[n][k]);return 0;
}

转载于:https://www.cnblogs.com/AWCXV/p/7626954.html

【9915】乘积最大相关推荐

  1. LeetCode简单题之两个数对之间的最大乘积差

    题目 两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) . 例如,(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2 * 7) ...

  2. hdu2006 求奇数的乘积【C++】

    求奇数的乘积 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  3. 蒟蒻吃药计划-治疗系列 #round 2 合并石子+乘积最大

    1.合并石子 <信息学奥赛一本通>第五版 P371 第三节 T1 我就直接开始讲吧: Warning:这个题目和 合并果子 不一样!不一样!不一样!不一样!不一样!不一样!不一样!不一样! ...

  4. 不相交轮换的乘积怎么求_谁能告诉我 轮换的乘积 怎么做?具体题目是

    展开全部 把轮换的乘积看成变换的乘积就行了,轮换本身就是变换,上式看成Ψ1Ψ2Ψ3,任给一个元素a,显然像为Ψ32313133353236313431303231363533e59b9ee7ad943 ...

  5. leetcode-152 乘积最大子序列

    题目描述: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数). 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6 ...

  6. SDUTOJ 1293 乘积最大的分解(数论)

    乘积最大的分解   思路: 让分解出来的因子有尽可能多的3,剩下的用2补全. 最开始思路错了,WA了好长时间= =! 函数中n == 1的情况应该是不用,经测试数据中没有这组. *注意用 long l ...

  7. LeetCode实战:除自身以外数组的乘积

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given an ar ...

  8. 编程——无序数组中找到最大乘积(python)

    题目 给定一个无序数组,包含正数.负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 输入描述: 输入共2行,第一行包括一个整数n,表示数组长度 第二行为 ...

  9. D.Digits 思维dp 取log乘积变成加法

    题目链接 题目大意: 就是给你nnn个数和一个数字ddd,问你从这n个数中挑出若干个数,使得这些数的乘积最后的一个数字是d,并且结果是最大的,问你要挑出哪些数字? n∈[1,1e5],ai∈[1,10 ...

最新文章

  1. Python3.5+selenium操作Chrome浏览器的简单实例
  2. android 常用 style,Android中 Styles和Themes
  3. java解压多目录Zip文件(解决中文乱码问题)--转载
  4. 并发编程-01并发初窥
  5. springer link:find the journals you need
  6. RabbitMQ之mandatory和immediate
  7. python中np没有定义_python中的np.empty_python – np.empty,np.zeros和np.one
  8. java md2_java中加密的实现方法(MD5,MD2,SHA)
  9. 可应用于实际的14个NLP突破性研究成果(二)
  10. 坐等价格!小米Civi今日下午发布:女性用户青睐之选
  11. 做人的36条常情世故
  12. [Python] 将两个列表合并为字典
  13. [k8s]kubernetes dashboard的安装
  14. abaqus2018安装教程win10_win10系统安装Abaqus2016全攻略
  15. 2016基于百度地图定位
  16. 饥荒联机版专属服务器建立和后续mod更新
  17. SCA连载GDPR罚单之保加利亚国家税务局(NRA)信息泄露事件
  18. python枚举窗口句柄_如何使用 WIN32 API 枚举窗口?
  19. 通信网络价值的魔鬼 梅特卡夫定律错在何处
  20. 《Hadoop 权威指南 - 大数据的存储与分析》学习笔记

热门文章

  1. 1 编码_TMS320F28379D之CLB解码多摩川编码器1——入手小知识(原创)
  2. my.cnf mysqld mysql_MySQL配置文件my.cnf详解【mysqld】模块(二)
  3. 结合泛函极值_泛函极值及变分法教程.doc
  4. 3.Ubuntu18.04取消警告音
  5. vs-halcon-大恒相机配置
  6. MFC消息响应函数OnPaint
  7. python跟java 效率_Python与Java:哪个更好,如何选择?
  8. 数据结构排序算法实验报告_数据结构与算法-堆排序
  9. SFB 项目经验-51-某上市企业2千人Exchange 2013升级2016高可用之伤01
  10. PHP中对象的深拷贝与浅拷贝