题目大意:有一个长度为N的字符串,要求用K个乘号将其分成K+1个部分,求各个部分相乘的最大值

输入:第一行输入N和K,第二行输入一个长度为N的字符串

算法分析

  1.  这个题只是一个简单的dp(甚至连区间dp都不是)
2. dp[i][j]表示前i个数字里面用了j个乘号,而枚举的状态k表示前k个数字用了j-1个乘号,然后用dp[k][j-1]去和后面的数字相乘
3. 由2可知我们需要一个数组sum[i][j]表示从i到j的数字(也就这和平时的题不一样了):
想一下如果说后面3个数字为123那么要乘的便是123,而我们平时的算法前缀和或者直接读取数据并不能表示出从1这个位置到3这个位置表示的一百二十三
所以我们用sum数组提前处理好 `for(int i = 1;i <= n;++i)
for(int j = i;j <= n;++j)
sum[i][j] = sum[i][j-1]*10 + b[j];`
` 4.sum数组处理好就是一个简单的dp了,下面是代码

#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5+10;
int n,m,b[maxn],sum[50][50],dp[50][50];
char a[maxn]; int main(){
scanf("%d%d",&n,&m);
for(int i = 1;i <= n;++i){
scanf(" %c",&a[i]);
b[i] = a[i]-'0';
}
for(int i = 1;i <= n;++i)
for(int j = i;j <= n;++j)
sum[i][j] = sum[i][j-1]*10+b[j];
dp[0][0] = 1;
for(int i = 1;i <= n;++i)dp[i][0] = sum[1][i];
for(int i = 1;i <= n;++i)
for(int j = 1;j <= i;++j){
if(dp[i][i-1] == 0)dp[i][i-1] = 1;
dp[i][i-1] *= b[j];
}
dp[1][0] = b[1];
for(int i = 2;i <= n;++i)
for(int j = 1;j < i && j <= m;++j)
for(int k = j;k < i;++k)
dp[i][j] = max(dp[i][j],dp[k][j-1]*sum[k+1][i]);
printf("\n%d\n",dp[n][m]);
return 0;
}

最新文章

  1. &lt;转&gt;Hibernate的优、缺点(局限性)
  2. [OrangePi] If you are using an older image
  3. 使用PageHeap.EXE或GFlags.EXE检查内存越界错误 (转)
  4. A Swift Tour(4) - Objects and Classes
  5. this关键字的解析
  6. hdu 4585 Shaolin_set用法
  7. Django的url解析
  8. [Python 学习] 两、在Linux使用平台Python
  9. linux下CPU信息查询
  10. [笔记]A Practical Guide to Support Vector Classi cation
  11. iOS客户端图片智能裁剪
  12. @Controller @RestController
  13. [Jenkins]JDK版本过高导致的java.io.IOException: Remote call on xxxx failed
  14. Linux性能查询常用指令
  15. Oracle课程档案,第二天
  16. BFPRT 算法 (TOP-K 问题)——本质就是在利用分组中位数的中位数来找到较快排更合适的pivot元素
  17. 【LeeCode23】Merge k Sorted Lists★★★
  18. Spring的IOC理解(转载)
  19. python learning2.py
  20. Scrum 5.0

热门文章

  1. python脚本:在Ubuntu16系统上基于xtrabackup2.4和mysql5.7实现数据库数据的自动化备份和恢复,亲测有效!
  2. Java实现 LeetCode 764 最大加号标志(暴力递推)
  3. Java实现 蓝桥杯VIP 算法训练 递归求二进制表示位数
  4. Java实现矩阵相乘问题
  5. java实现报数游戏
  6. 运用Navicat for MySQL进行MSSQL数据转移MYSQL
  7. Spring Boot 集成 Swagger 构建接口文档
  8. 8.keras-绘制模型
  9. ES索引操作
  10. QingStor 对象存储架构设计及最佳实践