#P7091. 数上的树
数上的树
题目背景
本题自动开启 O2 优化,时间限制 2s。
题目描述
您需要构造一棵二叉树,根节点权值为 ,每个节点都有 个或 个儿子,且满足如下限制:
若该点有两个儿子,该点权值需等于两个儿子的权值之积。
若该点没有儿子,则该节点权值需为质数。
同时会给出 条限制 ,表示树上的权值不能出现 。
您构造的二叉树需要使:令 为节点数, $\sum\limits_{i=1}^k\sum\limits_{j=i}^kval_{lca(i,j)}$ 最小,其中 表示第 个点的权值, 表示 的最近公共祖先。
输入格式
第一行两个正整数 。
之后一行 个数 。
输出格式
一行一个数,表示最小的 $\sum\limits_{i=1}^k\sum\limits_{j=i}^kval_{lca(i,j)}$。
无解输出 -1
。
4 0
20
12 1
4
127
192 1
2
-1
提示
样例解释:
样例 :最优方案如下:
其中,黑色数字代表权值,红色数字代表标号(您不需要对树标号,这里的标号只是为了更方便解释样例)。
$ans=val_{lca(1,1)}+val_{lca(1,2)}+val_{lca(1,3)}+val_{lca(2,2)}+val_{lca(2,3)}+val_{lca(3,3)}$
Subtask 1(5 分): 。
Subtask 2(12 分):。
Subtask 3(28 分):。
Subtask 4(20 分):。
Subtask 5(35 分):。
对于所有数据 ,,, 且答案不超过 。