乘积最大(动规例题)
来源:互联网 发布:宏基笔记本怎么样 知乎 编辑:程序博客网 时间:2024/06/03 15:57
题目描述:
求在一长度为N的字符串当中放k个符号所得的最大的乘积。
样例输入:
4 2
1231
样例输出:
62
这道题也是非常经典的动态规划类题目,我们先按插入的乘号来划分阶段。
设f[i,j]表示前i个数摆j个乘号所得到的最大乘积。
sum[i,j]表示i到j所组成的数字。
f[i,j]=max{f[k,j-1]*sum[k+1,i]}
这样这道题就可以prefect的解决了,但还有个地方特别需要注意,就是做动态规划类题目,有时候边界非常重要,这也是我觉得动态规划之所以难的地方,你很难一道题状态划分,方程转换,边界的数值全部都非常准确,所以这应该也是我目前应该加强的地方。
这道题的f[i,0]=sum[1,i]。才可以AC。
var S:string; i,j,p,k,n:Longint; f,sum:array[0..40,0..40] of qword;function max(x,y:longint):Longint;begin if x>y then exit(x) else exit(y);end;begin readln(n,k); readln(s); for i:=1 to n do for j:=i to n do val(copy(s,i,j-i+1),sum[i,j]); for i:=1 to n do f[i,0]:=sum[1,i]; for i:=1 to n do for j:=1 to (i+k)-(max(i,k)) do for p:=1 to i do f[i,j]:=max(f[i,j],f[p,j-1]*sum[p+1,i]); writeln(f[n,k]);end.
0 0
- 乘积最大(动规例题)
- 滑雪(动规例题)
- 石子归并(动规例题)
- 编辑距离(动规例题)
- 方格取数(动规例题)
- 低价购买(动规例题)
- 复制书稿(动规例题)
- SSL_1007&1595 乘积最大与和最大问题(区间动规练习题)
- 乘积最大(动态规划经典题)
- [编程题] 最大乘积
- 【算法题】最大乘积
- 最大乘积(暴力)
- 乘积最大(DP)
- uva11059(最大乘积)
- 蓝桥杯 乘积最大(dfs)
- 乘积最大(动态规划)
- 乘积最大(加乘)
- 乘积最大codevs1017(noip2000)
- 最大公约数和最大公倍数
- meanshift segmentation(原理+源码)
- ORA-28009:connection as SYS should be as SYSDBA OR SYSOPER
- Android之Adapter用法总结
- 热点板块黑马
- 乘积最大(动规例题)
- Unity3d SendMessage 简单用法笔记
- Linux/Windows 环境下openGL开发环境问题集锦
- [LeetCode]LRU Cache
- 最小生成树
- 【C++】C++对象内存模型简介
- iOS Masonry的使用详解
- 【NOIP2015模拟11.3】备用钥匙
- HDU 3625 Examining the Rooms (第一类斯特灵数,组合数学)