|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求个算法
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
1550
人关注过本帖,
1
人收藏
标题:
求个算法
取消只看楼主
加入收藏
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
结帖率:
96%
楼主
收藏
(1)
已结贴
√
问题点数:100 回复次数:4
求个算法
c++ 那边有人问了个题,我不会,在这边求个方法。
设有一个长度为N的数字串,要求使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。
搜索更多相关主题的帖子:
能够
2012-06-23 22:06
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
2
楼
收藏
得分:0
回复 2楼 czz5242199
f(i, j) 的 j 表示什么?另外每个 f(i, j) 都是个数组是吧?
原来几乎就是穷举。c++ 那边有个人瞎答了个类似分治的算法,搞的我想了半天也没想通。
[
本帖最后由 pangding 于 2012-6-23 22:25 编辑
]
2012-06-23 22:20
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
3
楼
收藏
得分:0
回复 4楼 czz5242199
是个不错的答案。我等一天,明天结帖。
2012-06-23 22:26
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
4
楼
收藏
得分:0
嗯,我说的不太专业。应该叫动态规划。
当然算过的地方不用再算了,我当时的穷举意思是每每多加一个乘号,就得把所有可能插乘号的地方试遍。能用的性质只有 a*b,当 b 不变的时候,a 越大积越大而已。
2012-06-23 23:28
举报帖子
使用道具
赠送鲜花
pangding
来 自:北京
等 级:
贵宾
威 望:
94
帖 子:6784
专家分:16751
注 册:2008-12-20
第
5
楼
收藏
得分:0
我昨天也觉得这个题可能有类似贪心法的算法,但确实有些问题很难处理。
比如 198910 加两个乘号:
1 * 98 * 910 = 89180 < 19 * 8 * 910 = 138320
而且还有类似这样的例子:
999999 加一个乘号答案应该是: 999 * 999;而加两个,却是 99 * 99 * 99。
所以合并分点的位置,也需要从全局考虑。局部最优解可能不能推到整体最优。
[
本帖最后由 pangding 于 2012-6-24 10:44 编辑
]
2012-06-24 10:38
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
求个算法
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.026164 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved