#E. [NOIP2003 提高组] 加分二叉树

    Type: RemoteJudge 1000ms 128MiB

[NOIP2003 提高组] 加分二叉树

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

设一个 nn 个节点的二叉树 tree\text{tree} 的中序遍历为(1,2,3,,n)(1,2,3,\ldots,n),其中数字 1,2,3,,n1,2,3,\ldots,n 为节点编号。每个节点都有一个分数(均为正整数),记第 ii 个节点的分数为 did_itree\text{tree} 及它的每个子树都有一个加分,任一棵子树 subtree\text{subtree}(也包含 tree\text{tree} 本身)的加分计算方法如下:

subtree\text{subtree} 的左子树的加分 ×\times subtree\text{subtree} 的右子树的加分 ++ subtree\text{subtree} 的根的分数。

若某个子树为空,规定其加分为 11,叶子的加分就是叶节点本身的分数。不考虑它的空子树。

试求一棵符合中序遍历为 (1,2,3,,n)(1,2,3,\ldots,n) 且加分最高的二叉树 tree\text{tree}。要求输出

  1. tree\text{tree} 的最高加分。

  2. tree\text{tree} 的前序遍历。

输入格式

1111 个整数 nn,为节点个数。

22nn 个用空格隔开的整数,为每个节点的分数

输出格式

1111 个整数,为最高加分(Ans4,000,000,000 Ans \le 4,000,000,000)。

22nn 个用空格隔开的整数,为该树的前序遍历。

5
5 7 1 2 10

145
3 1 2 4 5

提示

数据规模与约定

对于全部的测试点,保证 1n<301 \leq n< 30,节点的分数是小于 100100 的正整数,答案不超过 4×1094 \times 10^9

北辰OI俱乐部算法提高班:动态规划专题(二)

Not Claimed
Status
Done
Problem
8
Open Since
2023-11-25 0:00
Deadline
2024-12-31 23:59
Extension
24 hour(s)