蓝桥杯 算法训练 乘积最大(动态规划)
问题描述
今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:
设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。
同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:
有一个数字串:312, 当N=3,K=1时会有以下两种分法:
312=36
312=62
这时,符合题目要求的结果是:31*2=62
现在,请你帮助你的好朋友XZ设计一个程序,求得正确的答案。
输入格式
程序的输入共有两行:
第一行共有2个自然数N,K(6≤N≤40,1≤K≤6)
第二行是一个长度为N的数字串。
输出格式
输出所求得的最大乘积(一个自然数)。
样例输入
4 2
1231
样例输出
62
解题思路:本题和 最大的算式(点这里) 动态规划思路一致,具体解析可以看这里面,唯一不同的是初始化的时候需要注意,用到change函数完成从字符串到数字的转换
代码:
#include<cstdio>
#include<string>
#include<iostream>
#include<algorithm>
using namespace std;
char s[50];
int change(int start, int e) {int ans = 0;for (int i = start; i <= e; i++) {ans = ans * 10 + (s[i] - '0');}return ans;
}
int main(void) {int N, K;int dp[50][10] = { 0 };scanf("%d %d", &N, &K);scanf("%s", s + 1);for (int i = 1; i <= N; i++) {dp[i][0] = change(1, i);}for (int i = 2; i <= N; i++) {int mut = min(i - 1, K);for (int j = 1; j <= mut; j++) {for (int l = j + 1; l <= i; l++) {dp[i][j] = max(dp[i][j], dp[l - 1][j - 1] * change(l, i));}}}printf("%d", dp[N][K]);return 0;
}
蓝桥杯 算法训练 乘积最大(动态规划)相关推荐
- 蓝桥杯——算法训练——数字三角形
蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...
- 蓝桥杯 算法训练 逗志芃的危机
蓝桥杯 算法训练 逗志芃的危机 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 逗志芃又一次面临了危机.逗志芃的妹子是个聪明绝顶的人,相比之下逗志芃就很菜了.现在她妹子要和 ...
- 蓝桥杯 算法训练 强力党逗志芃
蓝桥杯 算法训练 强力党逗志芃 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 逗志芃励志要成为强力党,所以他将身上所以的技能点都洗掉了重新学技能.现在我们可以了解到,每个 ...
- 蓝桥杯算法训练 印章
蓝桥杯 算法训练 印章 问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 一行两个正整数n和m 输出格式 一个实数P表示答案,保 ...
- 蓝桥杯 算法训练 幸运的店家
蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...
- 蓝桥杯 算法训练 Beaver's Calculator
蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...
- 蓝桥杯 算法训练 印章
蓝桥杯 算法训练 印章 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入输出: 一行两个正整数n和m 一个实数P表示答案,保留4位小数. 样例: 2 3 ...
- 蓝桥杯算法训练-24点(Python)
问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...
- 蓝桥杯算法训练-强力党逗志芃
持续更新蓝桥杯算法训练题解,有兴趣可以关注一波呀 题目 逗志芃励志要成为强力党,所以他将身上所以的技能点都洗掉了重新学技能.现在我们可以了解到,每个技能都有一个前提技能,只有学完了前提技能才能学习当前 ...
最新文章
- 打通Fedora19的ssh服务
- Error: Command failed: xcrun instruments -s
- 解读“中国数字人民币的研发进展白皮书“
- JAVA11 - ZGC 特性
- mq java 开发_Java后台开发ActiveMQ使用指南
- Golang系列(三)之并发编程
- RDD和DataFrame和DataSet三者间的区别
- 浅谈React Hooks
- composer安装和使用
- 机器人手眼标定都能搞不定?快戳,最好用的手眼标定库!!!
- SpringBoot 2.X 整合 J2cache 一级缓存 ehcache3 二级缓存 redis (含使用demo实例)
- fences 桌面整理,超赞,强烈推荐
- 字节跳动前端开发面试题总结,需要的小伙伴来看!
- linux 离线迅雷下载软件,Linux 迅雷离线客户端!!!!!!!!!!!!
- 论文笔记 ACL 2017|Exploiting Argument Information to Improve Event Detection via Supervised Attention
- 使用opencv读取rtsp流的图片帧进行目标检测,并将处理好的图像推到rtsp服务器上
- 名帖148 行书《兰亭八柱帖》第六册:于敏中补戏鸿堂刻柳公权书兰亭诗阙笔册
- Bug[2] TCP先连接一个错误IP,再次连接会出现连接不上并且报 ALREADY OPENED的提示
- vue移动端和pc适配,搭建网站布局
- H.264码流分析仪