【动态规划】最大k乘积问题
Description
设I是一个 n位十进制整数。如果将I划分为 k段,则可得到k个整数。这k个整数的 乘积称为I的一个 k乘积。试设计一个算法,对于给定的 I和 k,求出 I的最大 k乘积。 对于给定的I和k,计算 I的最大 k乘积。 | ||
Input
第1 行中有2个正整数n和 k。正整数 n是序列 的长度;正整数k是分割的段数。接下来的一行中是一个n位十进制整数。(n<=10) |
||
Output
输出最大k乘积 |
||
Sample Input
2 1 15 |
||
Sample Output
15 |
||
#include<iostream>
using namespace std;
#define N 20
int m[N][N];
char num[N]; int atoi(char arr[],int i,int j)
{ int sum=0; while(i<=j) { sum = sum*10+arr[i]-'0'; //此处本来用了函数pow,然后wa了,一直找不到错在何处, i++; //后来问师兄,才发现原来pow(double,int) } //的参数double会使结果又偏差,改掉后就ac了 return sum;
} int main()
{ int n,k,i,j,l,max,flag; while(cin>>n>>k) { for(i=1;i<=n;i++) cin>>num[i]; m[1][1]=num[1]-'0'; for(i=2;i<=n;i++) m[i][1]=m[i-1][1]*10+(num[i]-'0'); //初始化第一列 for(j=2;j<=k;j++)//按列进行初始化 { max=-1; for(i=1;i<=n;i++) { if(j>i) m[i][j]=0; else { for(l=j-1;l<=i-1;l++) { flag=m[l][j-1]*atoi(num,l+1,i); if(flag>max) max=flag; } m[i][j]=max; } } } cout<<m[n][k]<<endl; } return 0;
}
//****************************************************************************
改进:对于atoi这个函数实现的功能可进行打表,这样可以加快程序运行速度
//****************************************************************************
【动态规划】最大k乘积问题相关推荐
- 动态规划|最大k乘积问题(C语言)
题目: [分析] 先通过若干个简单例子来观察规律,摸索思路.例如十进制整数 1234 划分为 3 段可有如下情形: 1 × 2 × 34 = 68 1 × 23 × 4 = 92 12 × 3 × 4 ...
- python动态规划算法最大k乘积_C语言使用DP动态规划思想解最大K乘积与乘积最大问题...
最大K乘积问题设I是一个n位十进制整数.如果将I划分为k段,则可得到k个整数.这k个整数的乘积称为I的一个k乘积.试设计一个算法,对于给定的I和k,求出I的最大k乘积. 编程任务: 对于给定的I 和k ...
- 最大k乘积问题---动态规划实验1
问题描述 设I是一个n位十进制整数.如果将I划分为k段,则可得到k个整数.这k个整数的乘积称为I的一个k乘积.试设计一个算法,对于给定的I和k,求出I的最大k乘积. 例如 十进制整数 1234 划分为 ...
- 最大k乘积问题--动态规划
问题 问题描述: 设x是一个n位十进制整数.如果将x划分为k段,则可得到k个整数.这k个整数的乘积称为x的一个k乘积.试设计一个算法,对于给定的x和k,求出x的最大k乘积. 编程任务: 对于给定的x和 ...
- 动态规划之最大K乘积问题
题目要求 设I是一个n位十进制整数.如果将I划分为k段,则可得到k个整数.这k个整数的乘积称为I的一个k乘积.试设计一个算法,对于给定的I和k,求出I的最大k乘积. 例如十进制整数 1234 划分为 ...
- 最大k乘积问题----动态规划
问题 设I是一个n位十进制整数.如果将I划分为k段,则可得到k个整数.这k个整数的乘积称为I的一个k乘积.试设计一个算法,对于给定的I和k,求出I的最大k乘积. 编程任务: 对于给定的I 和k,编程计 ...
- 【动态规划】最大K乘积问题和游艇租用问题——武汉理工大学算法设计与分析课程实验
1. 最大K乘积问题 « 问题描述 设I是一个n位十进制整数.如果将I划分为k段,则可得到k个整数.这k个整数的乘积称为I的一个k乘积.试设计一个算法,对于给定的I和k,求出I的最大k乘积. 例如十 ...
- python动态规划算法最大k乘积_划分类动态规划——乘积最大(洛谷1018,codevs1017)...
本题由于比较老,数据实际也比较小,用long long 即可通过 代码: var n,m,i,j,k,sum:longint; s,t:string; a:array[1..40,1..40] of ...
- 最大k乘积的时间复杂度_惊,我还不会算时间复杂度!
你好,我是goldsunC 让我们一起进步吧! 这篇文章因为写的时候使用的markdown,公式用的LaTex,然后转换的时候LaTex都转换成了好多图片,大家可以看到文章中有好多公式图片,然后复制的 ...
最新文章
- Vue添加新的响应式属性
- RESTful到底是什么玩意??
- codewars--js--Hamming Numbers
- 玩转JavaScript正则表达式
- 使用Raphael实现html中绘图
- openjdk 使用_如何在OpenJDK中使用ECC
- 2020德勤面试开始了吗_2020公务员面试公告已出,5月28日开始面试
- 【BZOJ1009】【codevs2325】GT考试,kmp+矩阵加速DP
- 华为P30系列双景录像功能上线:同屏展示全景与特写
- Unsupported major.minor version 52.0解决办法
- Python使用C++动态库的方法
- WordPress如何开启用户注册功能
- C# socket编程TcpClient与TcpListener UdpClient
- [嵌入式开发模块]深度传感器解算板(MS5837转串口板) 驱动模块
- 程序员前景一片灰暗?网友:不行找个班上吧
- Go 环境变量、go env
- 用html画一个企鹅图案的代码,HTML5 Canvas来绘制图形
- 国外短链接项目。一万次点击220美刀
- CM10稳定版推出;CyanogenMod域名险被劫持
- vue 传参获取数据