#98. 表达式计算 杂想

题目传送:#98. 表达式计算

考试考完后发现,连题都没读懂。。

两种题意的理解,两种不同的解法

一、确定运算顺序指确定符号的优先级:

最多4!=24种不同的运算顺序,O(n)求出每种顺序下的表达式树,O(24^2 n)求出有多少不同的表达式树(要比较两个树是否相同的话,比较每个节点的父子就好了),在O(24*n)求出各个不同的表达式的的结果,最后求下期望。总复杂度O(24^2 n),不算常熟的话强行O(n)(滑稽)

二、确定运算顺序指不管符号的优先级(正解)(来自x神的思路,膜拜):

两种运算顺序不同当且仅当这两种运算顺序所对应的表达式树不同。那么不妨着手构建表达式树。对于一棵表达式树,发现构建它时每次选取序列中的一个符号及相邻的2个数,然后取出他们,再作为一个新数放回原位置。这不就是区间dp吗?统计区间的结果等于1和0的方案数,最后统计一下答案。

原文地址:https://www.cnblogs.com/InductiveSorting-QYF/p/14066795.html