社区
数据结构与算法
帖子详情
算术表达式求最大值的算法
POOHccc
2008-01-20 04:46:18
给你一个算术表达式,求运算结果的最大值
例如:5*7+2
答案:45
例如:6*3-9*3
答案:27
例如:5+2-7*2-3
答案:14
这题除了穷举法,还有效率更好的算法吗
一直想不透
...全文
269
7
打赏
收藏
算术表达式求最大值的算法
给你一个算术表达式,求运算结果的最大值 例如:5*7+2 答案:45 例如:6*3-9*3 答案:27 例如:5+2-7*2-3 答案:14 这题除了穷举法,还有效率更好的算法吗 一直想不透
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fongfc
2009-11-25
打赏
举报
回复
[Quote=引用 5 楼 tailzhou 的回复:]
可以用动态规划法:
op[i]表示第i个数字后的计算符
dp1[i][j] 表示第i个数字到第j个数字之间的表达式的最大值;
dp2[i][j] 表示第i个数字到第j个数字之间的表达式的最小值;
那么 dp1[i][j]=
max{
dp1[i][i'] op[i'] dp1[i'][j],
dp1[i][i'] op[i'] dp2[i'][j],
dp2[i][i'] op[i'] dp1[i'][j],
dp2[i][i'] op[i'] dp2[i'][j]
}
dp2[i][j]=
min{
dp1[i][i'] op[i'] dp1[i'][j],
dp1[i][i'] op[i'] dp2[i'][j],
dp2[i][i'] op[i'] dp1[i'][j],
dp2[i][i'] op[i'] dp2[i'][j]
}
对所有的i',i'>=i and i' <j;
[/Quote]
我不太懂您的意思
dp1[i][j]=
max{
dp1[i][i'] op[i'] dp1[i'][j],
...
对所有的i',i'>=i and i' <j;
--------------------------
假设我们现在要算dp[1][3],
所以dp1[1][3]=
max{
dp1[1][1] op[i'] dp1[1][3],
...
而dp1[1][3]却是我们现在所不知道的@@"
所以我不太懂到底是要代哪个值
请指教,谢谢
tailzhou
2008-01-21
打赏
举报
回复
可以用动态规划法:
op[i]表示第i个数字后的计算符
dp1[i][j] 表示第i个数字到第j个数字之间的表达式的最大值;
dp2[i][j] 表示第i个数字到第j个数字之间的表达式的最小值;
那么 dp1[i][j]=
max{
dp1[i][i'] op[i'] dp1[i'][j],
dp1[i][i'] op[i'] dp2[i'][j],
dp2[i][i'] op[i'] dp1[i'][j],
dp2[i][i'] op[i'] dp2[i'][j]
}
dp2[i][j]=
min{
dp1[i][i'] op[i'] dp1[i'][j],
dp1[i][i'] op[i'] dp2[i'][j],
dp2[i][i'] op[i'] dp1[i'][j],
dp2[i][i'] op[i'] dp2[i'][j]
}
对所有的i',i'>=i and i'<j;
POOHccc
2008-01-21
打赏
举报
回复
题目解出来了,谢谢楼上的帮忙
huangzhtao
2008-01-20
打赏
举报
回复
不太明白LZ的意思,是不考虑原来的算符优先级,看计算的最大值吗?
ProjectDD
2008-01-20
打赏
举报
回复
表达式?怎么与最大值联系,好象你没说清楚
是指一系列有序的符号吗?
如(+,*,+)与一组给定的数??,不太明白
Supper_Jerry
2008-01-20
打赏
举报
回复
应该遵循一些原则的。正负优先级最高,其次乘除
1.如果碰到-就尽量减低-造成的影响,看是否能让-变成+(通过将-后面的算式变成-)
2./的话就尽量减小分母。
3.如果全部为正数后就*优先于+,(1除外)
个人观点,仅供参考。
POOHccc
2008-01-20
打赏
举报
回复
说的不够清楚
符号只有(+, -, *, /)
另外不考虑符号的优先级
例如:5*7+2
总共有二种算法:
1. (5*7)+2
2. 5*(7+2)
代出来的结果,1. 解为37,2. 解为45
所以最大值是45
例如:6*3-9*3
最大值的算法就是((6*3)-9)*3
所以是27
例如:5+2-7*2-3
最大值的算法就是(5+2)-((7*(2-3))
所以是14
《Java基础入门》第二篇1 基本数据类型,运算符与
表达式
,条件结构,循环结构
2)
算术
运算符 3)关系运算符 4)逻辑运算符 5)位操作运算符 6)
表达式
(3)条件结构 1)控制流...
算术
表达式
求值 - 栈的应用
通过修改完善教材中的
算法
3.4,利用栈来实现
算术
表达式
求值的
算法
。对
算法
3.4中调用的几个函数要给出其实现过程: 1、函数In(c):判断c是否为运算符; 2、函数Precede(t1,t2):判断运算符t1和t2的优先级; 3、...
数据结构 基于栈的中缀
算术
表达式
求值
数据结构 实验2 基于栈的中缀
算术
表达式
求值实验目的实验内容实验提示 实验目的 1.掌握栈的基本操作
算法
的实现,包括栈初始化、进栈、出栈、取栈顶元素等。 2.掌握利用栈实现中缀
表达式
求值的
算法
。 实验内容 问题...
算术
表达式
求值的程序设计与实现_数据结构课程设计
部分思路借鉴
算术
表达式
求值(C语言栈)_夜何其的博客-CSDN博客_c语言利用栈求解
算术
表达式
侵删致歉 《
算术
表达式
求值的程序设计与实现》题目要求 1、问题描述 从键盘上输入中缀
算术
表达式
,包括圆括号,计算出...
算术
表达式
求值(栈结构及其应用) - C语言
表达式
求值是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。一个
算术
表达式
是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。...设计一个程序,演示
算术
表达式
求值的过程。
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章