编程题:DFS
一个高质量的算术表达式由括号、数字和乘法和加法运算组成。
质量算术表达式递归定义如下:
* 一个只包含一个小于或等于$$Z1$$的正实数的表达式是好的。这种表达形式如下:
$$ (x)$$
例如,如果$$Z1 = 5$$,则$$(4)$$是一个质量表达式。
* 如果$$A1, A2,…,A k$$是质量表达式,使$$2≤k≤ k$$的和最多为$$Zk$$,则下列表达式是质量良好的:
$$(A1+A2+...+Ak) $$
$$(A1*A2*...*Ak)$$
你会得到一个用问号代替数字的质量表达式。确定表达式可能具有的最大值。
### 输入格式:
第一行输入为整数$$K(2≤K≤50)$$。输入的第二行包含整数$$Z1,…,Zk$$,用空格分隔$$(1≤Z1,…,Zk≤50)$$。输入的第三行包含一个所述格式的高质量算术表达式。算术表达式由: '$$?$$', ' $$*$$ ', ' $$+$$', '$$($$', '$$) $$',最大长度为$$1000000$$。
### 输出格式:
您必须输出表达式的最大可能值。如果一个解决方案与官方解决方案的绝对或相对偏差小于$$10 ^{-3}$$,就被认为是正确的。
### 输入样例1:
in
2
10 6
((?)+(?))
### 输出样例1:
out
6.000000000
### 输入样例2:
in
3
2 5 3
(((?)+(?))*(?))
### 输出样例2:
out
6.000000000
### 输入样例3:
in
3
2 10 6
((?)*(?)*(?))
### 输出样例3:
out
8.000000000
答案:若无答案欢迎评论
质量算术表达式递归定义如下:
* 一个只包含一个小于或等于$$Z1$$的正实数的表达式是好的。这种表达形式如下:
$$ (x)$$
例如,如果$$Z1 = 5$$,则$$(4)$$是一个质量表达式。
* 如果$$A1, A2,…,A k$$是质量表达式,使$$2≤k≤ k$$的和最多为$$Zk$$,则下列表达式是质量良好的:
$$(A1+A2+...+Ak) $$
$$(A1*A2*...*Ak)$$
你会得到一个用问号代替数字的质量表达式。确定表达式可能具有的最大值。
### 输入格式:
第一行输入为整数$$K(2≤K≤50)$$。输入的第二行包含整数$$Z1,…,Zk$$,用空格分隔$$(1≤Z1,…,Zk≤50)$$。输入的第三行包含一个所述格式的高质量算术表达式。算术表达式由: '$$?$$', ' $$*$$ ', ' $$+$$', '$$($$', '$$) $$',最大长度为$$1000000$$。
### 输出格式:
您必须输出表达式的最大可能值。如果一个解决方案与官方解决方案的绝对或相对偏差小于$$10 ^{-3}$$,就被认为是正确的。
### 输入样例1:
in
2
10 6
((?)+(?))
### 输出样例1:
out
6.000000000
### 输入样例2:
in
3
2 5 3
(((?)+(?))*(?))
### 输出样例2:
out
6.000000000
### 输入样例3:
in
3
2 10 6
((?)*(?)*(?))
### 输出样例3:
out
8.000000000
答案:若无答案欢迎评论