【NOIP2000提高】乘积最大

这是一道关于动态规划的算法题目,讨论如何通过插入乘号最大化前i位数的乘积。通过分析,我们可以设定状态f[i][k]表示在前i位数中插入k个乘号所能得到的最大值,并利用状态转移方程式f[i][k]=max{f[j][k-1]*a[j+1][i]}进行求解。
摘要由CSDN通过智能技术生成

这里写图片描述

这是一道典型的动态规划题目

**

【算法分析】

**

**此题满足动态规划法的求解标准,我们把它插入的乘号数来划分阶段,若插入k个乘号,若插入k个乘号,可把问题看做是k个阶段的决策问题。设f[i][k]表示在前i位数中插入k个乘号所得的最大值 a[j][i]可表示从j位到底i位所组成的自然数.用f[i][k]储存阶段k的每一个状态 ,可以得到状态转移方程式:
f[i][k]=max{f[j][k-1]*a[j+1][i]}(k<=j

【参考程序】


#include<cstring>
#include<string>
#include<cstdio>
long long a[11][11],f[11][
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值