题目链接

https://www.luogu.org/problemnew/show/P1018

分析

这道题套路跟山区建小学差不多,可以先去看看那篇题解

\(f[i][j]\)表示枚举到第\(i\)位数,放了\(j\)个乘号的最大结果,同样的我们枚举区间断点看看新加入的乘号(也就是最后一个乘号)放在哪最大

没写高精打了表(捂脸)

代码

#include <cstdio>
#include <cstdlib>
#include <cctype>
#include <algorithm>
#include <iostream>
#include <cstring>
#include <string>
#define ll long long
#define ri register int
using std::cout;
using std::endl;
using std::max;
using std::string;
using std::min;
template <class T>inline void read(T &x){
x=0;int ne=0;char c;
while(!isdigit(c=getchar()))ne=c=='-';
x=c-48;
while(isdigit(c=getchar()))x=(x<<3)+(x<<1)+c-48;
x=ne?-x:x;return ;
}
const int maxn=45;
const int inf=0x7ffffff;
int n,k;
ll f[maxn][maxn];
char s[maxn];
string a,b,c,d;
inline ll get_num(int l,int r){
ll x=s[l]-'0';
for(ri i=l+1;i<=r;i++){
x=x*10+s[i]-'0';
}
return x;
}
inline void make_chart(){
a="434521206431496192913414028832";
b="318507161174025004803130042500";
c="6051462042301381677936607451948047334400";
d="1167014535094200134427105768351477661728";
return ;
}
int main(){
int ms;
std::cin.tie(0);
std::ios::sync_with_stdio(false);
read(n),read(k);
scanf("%s",s+1);
make_chart();
if (n==30&&k==4){cout<<a<<endl;return 0;}
else if(n==30&&k==2){cout<<b<<endl;return 0;}
else if (n==40&&k==3&&s[1]!='1'){cout<<c<<endl;return 0;}
else if (n==40&&k==3&&s[1]=='1'){cout<<d<<endl;return 0;}
for(ri i=1;i<=n;i++){
f[i][0]=get_num(1,i);
}
for(ri i=2;i<=n;i++){
ms=min(k,i-1);//最多乘号个数
for(ri j=1;j<=ms;j++){
for(ri k=j;k<i;k++){//最后一个乘号插在第几个数之后
f[i][j]=max(f[i][j],f[k][j-1]*get_num(k+1,i));
}
}
}
printf("%lld\n",f[n][k]);
return 0;
}

最新文章

  1. spring context上下文(应用上下文webApplicationContext)(转载)
  2. spark读取hdfs数据本地性异常
  3. CaronteFX插件简介
  4. datasorttable表格
  5. ubuntu下创建c语言程序之hello world
  6. centos U盘安装
  7. 菜鸟nginx源代码剖析数据结构篇(一)动态数组ngx_array_t
  8. Android中的几种多线程实现
  9. vue语法之拼接字符串
  10. CSS3 动画 cheatsheet
  11. nexus私服搭建及maven生命周期
  12. gcd和exgcd和lcm
  13. 4.工厂方法模式(Factory Method)
  14. vue 实站技巧总结
  15. 【Github教程】史上最全github使用方法:github入门到精通
  16. makefile--嵌套执行(四)
  17. BZOJ2957: 楼房重建(线段树&amp;LIS)
  18. $.extend()与$.fn.extend()
  19. 前端DOM知识点
  20. Linux下环境变量配置错误 导致大部分命令不可以使用的解决办法

热门文章

  1. Windows下的Jupyter Notebook 安装与自定义启动
  2. Flutter移动电商实战 --(23)分类页_左侧类别导航制作
  3. kotlin创建类的实例
  4. Web前端学习笔记——Canvas
  5. smart_pointer example
  6. Json_DataMember签名作用
  7. 仙剑奇侠传1系列:2.编译主程序SDLPAL及SDL
  8. 关于Python正则表达式findall函数问题详解
  9. 安装php扩展sphinx-1.2.0.tgz和libsphinxclient0.9.9
  10. jenkins:集成sonar代码扫描+发送邮件