当前位置: 首页 > news >正文

python动态规划算法最大k乘积_动态规划最大K乘积问题

最大K乘积动态规划解决

设I是一个n位十进制整数。如果将I分割为k段,则可得到k个整数。这k个整数的乘积称为I的一个k乘积。试设计一个算法,对于给定的I和k,求出I的最大k乘积。

测试:

输入: 2 1 (2是位数,1是分几段)

15 (15是I)

输出:15

输入: 5 2

12345

输出:6170

分析:

1、数组m[i][j]为 将前i位数分成j段的最大乘积

2、数组打底:前1位数,分成1段;前2位数,分成1段;前3位数,分成1段……前n位数,分成1段。(就是先计算出前i位的大小)

3、m[i][j]=Max{m[k][j-1]*a[i-k]},其意思就是把前k(1<=k

#include

int cal(char* num,int i,int j){

int value=0;

while(j>=i){

value=value*10+(num[i]-'0');

i++;

}

return value;

}

int main(){

int n,k; //n代表整数有n位,k指分成多少段

scanf("%d%d",&n,&k);

getchar();

char num[n+1]; //接收单个字符

int m[n+1][n+1]; //m[i][j] 前i个数字,分成j段

int max,value;

for(int i=1;i

scanf("%c",&num[i]);

}

//数组打底

m[1][1]=num[1]-'0';

for(int i=2;i

m[i][1]=m[i-1][1]*10+(num[i]-'0'); //前i个数字,分成一段

for(int i=2;i<=k;i++){ //分成多少段

max=-1;

for(int j=i;j

for(int d=1;d<=j-1;d++){

value=m[d][i-1]*cal(num,d+1,j);

if(value>max)

max=value;

}

m[j][i]=max;

}

}

printf("最大k乘积为:%d\n",m[n][k]);

return 0;

}

AfmaYb.png 运行截图

VNjQbq.png 运行截图

相关文章:

  • python实现语音播放失败_PyAudio alsa错误消息
  • python更新pip管理员权限_PIP升级权限被拒绝Windows 10
  • redis监听mysql数据库数据_天兔监控服务器和mysql,redis等监控
  • 第二部分 Mysql数据库管理_第二篇 数据库MySql
  • mysql 从库基于主库binlog恢复_MySQL利用binlog来恢复数据库
  • python可迭代对象相关的内建函数_第八章 Python可迭代对象、迭代器和生成器
  • mysql workbench连接jsp_JSP连接sql server2000数据库
  • 爱可生 mysql监控_数据库Prometheus 数据采集3-爱可生
  • java分割_Java中分割字符串的两种方法实例详解
  • java https 证书_JavaHTTPS客户端证书认证
  • java byte to hex_java 转换byte位hex字符串的工具代码
  • java泛型设计_使用java泛型设计通用方法
  • java线程 数据队列_java多线程从队列中取出数据执行
  • java 给url增加参数_Java给指定URL字符串添加值和获取URL字符串中的参数值
  • java copy object_Java Object 对象拷贝
  • angular2 简述
  • Apache的基本使用
  • Brief introduction of how to 'Call, Apply and Bind'
  • Consul Config 使用Git做版本控制的实现
  • ES6之路之模块详解
  • java 多线程基础, 我觉得还是有必要看看的
  • linux安装openssl、swoole等扩展的具体步骤
  • markdown编辑器简评
  • npx命令介绍
  • react-native 安卓真机环境搭建
  • spring + angular 实现导出excel
  • springboot_database项目介绍
  • SSH 免密登录
  • Vue实战(四)登录/注册页的实现
  • vue中实现单选
  • 来,膜拜下android roadmap,强大的执行力
  • 通信类
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​用户画像从0到100的构建思路
  • #stm32驱动外设模块总结w5500模块
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (python)数据结构---字典
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (黑马C++)L06 重载与继承
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (十) 初识 Docker file
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)JVM内存分配 -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m
  • (转)大道至简,职场上做人做事做管理
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • .NET Micro Framework初体验
  • .NET Project Open Day(2011.11.13)
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • [ vulhub漏洞复现篇 ] JBOSS AS 5.x/6.x反序列化远程代码执行漏洞CVE-2017-12149
  • [20140403]查询是否产生日志
  • [Android] Android ActivityManager
  • [Android]使用Git将项目提交到GitHub
  • [bzoj1038][ZJOI2008]瞭望塔
  • [hdu 2896] 病毒侵袭 [ac自动机][病毒特征码匹配]