题目 3526

[NOIP2003-提高] 加分二叉树

查看题解 ↗GitHub ↗如何评测
题号
3526
时间限制
1000 ms
内存限制
33554432 MB
标签
动态规划区间DP

题目描述

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

subtreesubtree的左子树的加分× subtreesubtree的右子树的加分+subtreesubtree的根的分数。

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

试求一棵符合中序遍历为(1,2,3,…,n1,2,3,\dots,n)且加分最高的二叉树treetree。要求输出;

(1)treetree的最高加分

(2)treetree的前序遍历

输入输出格式

输入格式:

第11行:11个整数n(n<30)n(n<30),为节点个数。

第22行:nn个用空格隔开的整数,为每个节点的分数(分数$ <100$)。

输出格式:

第11行:11个整数,为最高加分(Ans $ \le 4,000,000,000$)。

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

输入输出样例

输入样例#1:

5 5 7 1 2 10

输出样例#1:

145 3 1 2 4 5

数据下载

题目 3526 的公开数据

正在读取文件列表…

常用命令

题目 3526 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。