题目是:给出一个数字(10,000~100,000,000),把这个数字拆分成4段,怎样使得4段的乘积最小。比如12345拆分成1*2*3*45=270, 10000=1*00*0*0=0。

解题分析稍后给出。。。

My Code:

#include <iostream>
#include <string>
using namespace std;int dp[5][20];int num(const string &str,int b,int e)
{b--;e--;int res=0;while(b<=e){res=(str[b++]-'0')+res*10;}return res;
}int main()
{for(int i=0;i<5;i++)for(int j=0;j<20;j++)dp[i][j]=1;string str;cin>>str;int len=str.size();for(int i=1;i<=4;i++)for(int j=i;j<=len;j++){if(i==j){int res=1;for(int t=0;t<j;t++){res*=(str[t]-'0');}dp[i][j]=res;}else if(i!=1){int min=0x7FFFFFFF;for(int k=i-1;k<j;k++){int temp=dp[i-1][k]*num(str,k+1,j);if(temp<min)min=temp;}dp[i][j]=min;}else if(i==1){dp[i][j]=num(str,1,j);}}cout<<dp[4][len]<<endl;return 0;
}

5.数字拆分成4段,怎样使得4段的乘积最小【dp】相关推荐

  1. 分离数字的python编码_把数字拆分成2的幂的和

    问题: 任何数都能分解成2的幂,比如 7=1+1+1+1+1+1+1 =1+1+1+1+1+2 =1+1+1+2+2 =1+2+2+2 =1+1+1+4 =1+2+4 共有6种分解方式,设f(n)为任 ...

  2. 数据结构:假设有一个带头结点的单链表L,每个结点值由单个数字、小写字母和大写字母构成。设计一个算法将其拆分成3个带头结点的单链表L1、L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母

    假设有一个带头结点的单链表L,每个结点值由单个数字.小写字母和大写字母构成.设计一个算法将其拆分成3个带头结点的单链表L1.L2和L3,L1包含L中的所有数字结点,L2包含L中的所有小写字母结点,L3 ...

  3. 15拆分成3个不同的自然数_一个简单的算法 - 将一个正整数拆分成指定几个正整数的组合...

    假设我们这里有个正整数18,这里需要把18拆分成1 2 3 5 10的组合,那么输出的结果应该是: ==> 10+5+3 eg:->79 ----->7*10+5+3+1 大数优先 ...

  4. c/c++教程 - 2.4.1 类和对象,封装,class和struct的区别,成员属性设为私有,类拆分成.h.c文件编写方法

    目录 4. 类和对象 4.1 封装 4.1.1 封装的意义 4.1.2 class和struct的区别 4.1.3 成员属性设置为私有 4.1.4 类拆分成.h.c编写方法 相关教程 4. 类和对象 ...

  5. Google Hangouts拆分成类Slack的Chat和视频通话工具Meet

    Google做聊天服务并没有什么好履历,但是搜索巨头做社交之心一直未死(这一点跟阿里挺像啊).Hangouts.Allo.Android Messenger.Duo等等可以用前赴后继来形容.在经过几年 ...

  6. 批量将Txt文件内容拆分成Excel文件

    批量将Txt文件内容拆分成Excel文件 第1步: 新建一张Excel 表,并输入需要拆分Txt文件所在文件夹位置,以及拆分后数据保存Excel的路径信息,并保存名为"拆分.xlsm&quo ...

  7. Vba工具-把一个总表按任何1列维度拆分成n个子表

    Vba工具-把一个总表按任何1列维度拆分成n个子表 第一步:删除总表以外的表 第二步:按所选维度拆分表并命名 第三步:把内容复制到子表 Sub 拆分() excel.application.displ ...

  8. 15拆分成3个不同的自然数_三年级常考的奥数题:整数拆分问题

    三年级常考的奥数题:整数拆分问题 导语:书,我的良师益友,它给我知识.力量,它指导我怎样去生活和斗争.下面是小编为大家整理的,数学练习题,希望对大家有所帮助,欢迎阅读,仅供参考,更多相关的知识,请关注 ...

  9. 段选择符和段描述符的关系

    段选择符用来表示指向哪个段描述符,即用来在段描述符中寻址,前13位是地址,能寻0到(2^13)-1,因此段描述符表的大小就是 8192,他还牵扯到一些特权级的限制,后三位:段描述符是用来表示这个段的一 ...

最新文章

  1. 线段树分裂与合并的模板以及空间大小的计算
  2. mac设置计算机用户名,如何更改macbook用户名_高手教你更改macbook用户名的方法-系统城...
  3. tensorflow: Could not load dynamic library ‘cudart64_101.dll‘ 解决办法
  4. [面向对象] ABAP中程序类如何转化成全局类
  5. A Common Framework for Interactive Texture Transfer(CVPR 2018)学习笔记
  6. mysql 删除另一个表中的_mysql – 在一个查询SQL中删除两个表中的记录
  7. linux操作系统的体系结构
  8. AudioBufferSourceNode
  9. java部署容器_Linux容器——Docker(二)之 JavaWeb部署
  10. python基础知识-python基础知识整理(值得收藏)
  11. FPGA BCD计数器(多位)
  12. intel网卡win10 修改mac
  13. AVR单片机项目教程 基于C语言,AVR单片机项目教程--基于C语言(第2版)
  14. 为什么要学习Linux内核,如何学习?
  15. 如何完整的安装Cygwin
  16. 《iOS成长之路》开放订阅,和故胤道长 、张嘉夫 、onevcat、叶孤城、没故事的卓同学等技术大牛共同成长
  17. typeScript(二)
  18. windows电脑启动问题-0xc000000d
  19. java 随机数种子_Java Random.setseed()设置随机数种子
  20. 原创超简单代码(1.24.10)

热门文章

  1. java dump分析工具_java性能分析与常用工具
  2. linux 安装redis2.8.3,centos7下安装Redis2.8版本步骤
  3. 测试适合眉形的软件_软件测试的自我修养:正向思维与逆向思维
  4. php 降序 保留索引,PHP asort():对数组排序(升序),并保持索引关系
  5. 课工场java新手基础教程_Java新手学习路线,学Java不走弯路
  6. html wbr标签,HTML wbr标签
  7. java主窗体设计代码_java窗体设计+GUI经典代码全放送
  8. LM358的工作特性测试
  9. 解决Mac Pro上IDEA卡顿的问题
  10. ka电器表示什么意思_电器上的KA是指的什么电流?