题目描述

给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如:

N=5, K=2,5个数字分别为1、2、3、4、5,可以加成:

1*2*(3+4+5)=24

1*(2+3)*(4+5)=45

(1*2+3)*(4+5)=45

……

输入输出格式

输入格式:

输入文件共有二行,第一行为两个有空格隔开的整数,表示N和K,其中(2<=N<=15, 0<=K<=N-1)。第二行为 N个用空格隔开的数字(每个数字在0到9之间)。

输出格式:

输出文件仅一行包含一个整数,表示要求的最大的结果

最后的结果<=maxlongint

输入输出样例

输入样例#1: 复制

5 2
1 2 3 4 5

输出样例#1: 复制

120

-----------------------------------------------------------------------------分析:一开始想用dp[i][j]表示i到j个数的最大值,可发现无论在循环上限还是其他地方都用不上k,然后我就看了题解这么想:在这题中,可以用dp[i][j]表示在前i个数中插入j个乘号。我们可以先处理前缀和,将dp[i][0]设为从a[1]加到a[i]的值,接着跑一个循环,寻找位置,插入一个乘号。就这样递推就可以得出答案了。
 1 #include <cstdio>
 2 #include <algorithm>
 3 using namespace std;
 4 int dp[20][20],a[20];
 5 int main()
 6 {
 7     int x,n,k;
 8     scanf("%d%d",&n,&k);
 9     for(int i=1;i<=n;i++)
10     {
11         scanf("%d",&x);
12         a[i]=a[i-1]+x;//前缀和
13         dp[i][0]=a[i];
14     }
15     for(int i=1;i<=n;i++)
16     for(int j=1;j<=min(k,i-1);j++)
17     {
18         for(int k=1;k<=i;k++)
19             dp[i][j]=max(dp[i][j],dp[k][j-1]*(a[i]-a[k]));
20     }
21     printf("%d",dp[n][k]);
22     return 0;
23 }

转载于:https://www.cnblogs.com/noblex/p/7739696.html

【洛谷】P1388 算式(dp)相关推荐

  1. 洛谷P1388 算式

    洛谷P1388 算式 这题写得有点乱了 主要要注意 f[i][j][k] j-i < k 是不存在的 不能单纯的设为负值 因为两个负值相乘就变成正数了,所以不行 1 #include <c ...

  2. 洛谷1846 游戏 dp

    题目链接 题意: 给定两个正整数数列,你要用它们来做一个游戏:你需要对数列进行若干次操作,每一次操作,应选择两个正整数K1和K2 ,并删除第一个数列的最后K1个数,计算出它们的和S1:删除第二个数列的 ...

  3. 洛谷P3146 区间dp做题笔记

    不是题解,不是题解,不是题解,纯属个人笔记,不知所言. 传送门:P3146 问:什么时候才能写的一手漂亮的dp? 答:夜深人静之时,魂归故里之日. 此题是一道基础的区间dp的题,看完题解犹豫片刻,之后 ...

  4. 洛谷1373(dp)

    常规线性dp,需要时就加一维.\(dp[i][j][t][s]\)表示在点\((i,j)\)时瓶子里剩\(t\)且为\(s\)走(0代表小a,1代表uim)时的方案数. de了半天发现是初次尝试的快速 ...

  5. 洛谷--橙色百道DP总结

    最近刷完了洛谷橙色DP大约一百道,算是发现了一些套路,就部分题目做一些总结. 大概分为三类 第一类,九大背包及其衍生 第二类,经典DP模型,如LCS,LIS等 第三类,实际问题背景的普通,环形,树上D ...

  6. 洛谷 深基 第4部分 基础数学与数论(19-21课)

    洛谷 深基 第4部分 基础数学与数论  第19章 位运算与进制转换 P1143 进制转换 https://www.luogu.com.cn/problem/P1143 洛谷P1143 进制转换的Pyt ...

  7. 洛谷 U266184 宠物小精灵之收服

    题目链接:宠物小精灵之收服 - 洛谷 标签:dp.背包问题 思路: 精灵球个数 与 对皮卡丘的伤害 都可以看成背包问题中的体积,所以将dp数组升级为二维 dp[i][j]表示 i个精灵球 j滴血皮卡丘 ...

  8. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  9. 【洛谷 P4934】 礼物 (位运算+DP)

    题目链接 位运算+\(DP\)=状压\(DP\)?(雾 \(a\&b>=min(a,b)\)在集合的意义上就是\(a\subseteq b\) 所以对每个数的子集向子集连一条边,然后答案 ...

  10. 【题解】洛谷P1541 [NOIP2010TG] 乌龟棋(类似背包的DP)

    题目来源:洛谷P1541 思路 类似背包的题 总之就是四种卡牌取的先后顺序不同导致的最终ans不同 所以我们用一个四维数组每一维分别表示第几种取了几张的最大分数 然后就是简单DP解决 代码 #incl ...

最新文章

  1. 日期参数format格式详细用法
  2. Ethernet/IP 学习笔记五
  3. EMC存储产品分析介绍 (一)
  4. java day of month_Java Calendar实例增加DAY_OF_MONTH作为递减(仅)HOUR或MINUTE的副作用
  5. vue el-tree 同时向后台传递选中和半选节点数据 (回显数据勾选问题已解决)
  6. typora html代码无效,Typora优化-适合不懂CSS代码的小白
  7. Modbus安全:M340停启和流量分析
  8. cfd计算机模拟,cfd模拟(cfd模拟软件)
  9. 17个值得收藏的国内外短信接码平台合集
  10. 中望3d快捷键命令大全_cad快捷键大全下载
  11. 【专栏】腾讯产品:写给产品经理和设计师的用户体验知识3
  12. 新元宇宙每周连载《地球人奇游天球记》第十八回冥王遇鬼
  13. at指令 meid_【技术分享】使用AT调制解调器命令解锁LG Android屏幕
  14. ArcGISPro通视分析之视线分析
  15. android如何屏蔽掉home键
  16. java模拟键盘按键
  17. matlab神经网络工具箱实现两个输入的BP神经网络
  18. SwiftUI 音乐和网络大全之网络音乐播放App支持iTunes搜索与播放(教程含源码)
  19. More Effective C++读书笔记
  20. 杜教筛 狄利克雷卷积入门

热门文章

  1. linux覆盖文件如何还原_大数据笔试真题集锦-——第十九章Linux面试题
  2. java map集合遍历方法,Java的Map集合的三种遍历方法
  3. php编译安装memcache,ubuntu源码编译安装memcached和php-memcache 扩展
  4. python车辆路径优化_车辆路径问题中距离维的设置
  5. 上海11月份计算机方面的会议,计算机类 | 10月截稿会议信息6条
  6. 鸿蒙os2.0通知栏,网友上手鸿蒙手机OS 2.0公测版:界面与EMUI已有明显不同
  7. java对象复制到新对象_java – 使用新生成的ID将Hibernate复制对象值复制到新对象中...
  8. javaweb开发后端常用技术_Web后端开发(11)——Session会话技术
  9. 链路分析 K.O “五大经典问题”
  10. 如何使用 Kubernetes 监测定位慢调用