P7091 数上的树

题目背景

**本题自动开启 O2 优化,时间限制 2s。**

题目描述

您需要构造一棵二叉树,根节点权值为 $n$,每个节点都有 $2$ 个或 $0$ 个儿子,且满足如下限制: 若该点有两个儿子,该点权值需等于两个儿子的权值之积。 若该点没有儿子,则该节点权值需为质数。 同时会给出 $m$ 条限制 $a_i$,表示树上的权值不能出现 $a_i$。 您构造的二叉树需要使:令 $k$ 为节点数, $\sum\limits_{i=1}^k\sum\limits_{j=i}^kval_{lca(i,j)}$ 最小,其中 $val_i$ 表示第 $i$ 个点的权值,$lca(i,j)$ 表示 $i,j$ 的最近公共祖先。

输入格式

第一行两个正整数 $n,m$。 之后一行 $m$ 个数 $a_i$。

输出格式

一行一个数,表示最小的 $\sum\limits_{i=1}^k\sum\limits_{j=i}^kval_{lca(i,j)}$。 无解输出 `-1`。

说明/提示

样例解释: 样例 $1$:最优方案如下: ![](https://cdn.luogu.com.cn/upload/image_hosting/2dcec565.png?x-oss-process=image/resize,m_lfit,h_170,w_225) 其中,黑色数字代表权值,红色数字代表标号(您不需要对树标号,这里的标号只是为了更方便解释样例)。 $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)}$ $~~~~~~~~=val_1+val_1+val_1+val_2+val_1+val_3$ $~~~~~~~~=4+4+4+2+4+2=20$ Subtask 1(5 分): $n\leq 20$。 Subtask 2(12 分):$n\leq 10^6$。 Subtask 3(28 分):$n\leq 10^{12}$。 Subtask 4(20 分):$m=0$。 Subtask 5(35 分):$n\leq 10^{15}$。 对于所有数据 $2\leq n\leq 10^{15}$,$0\leq m\leq \min(n,10^5)$,$2\leq a_i\leq n$, 且答案不超过 $4\times 10^{18}$。