luogu#P7091. 数上的树

数上的树

题目背景

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

题目描述

您需要构造一棵二叉树,根节点权值为 nn,每个节点都有 22 个或 00 个儿子,且满足如下限制:

若该点有两个儿子,该点权值需等于两个儿子的权值之积。

若该点没有儿子,则该节点权值需为质数。

同时会给出 mm 条限制 aia_i,表示树上的权值不能出现 aia_i

您构造的二叉树需要使:令 kk 为节点数, $\sum\limits_{i=1}^k\sum\limits_{j=i}^kval_{lca(i,j)}$ 最小,其中 valival_i 表示第 ii 个点的权值,lca(i,j)lca(i,j) 表示 i,ji,j 的最近公共祖先。

输入格式

第一行两个正整数 n,mn,m

之后一行 mm 个数 aia_i

输出格式

一行一个数,表示最小的 $\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

提示

样例解释:

样例 11:最优方案如下:

其中,黑色数字代表权值,红色数字代表标号(您不需要对树标号,这里的标号只是为了更方便解释样例)。

$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)}$

        =val1+val1+val1+val2+val1+val3~~~~~~~~=val_1+val_1+val_1+val_2+val_1+val_3

        =4+4+4+2+4+2=20~~~~~~~~=4+4+4+2+4+2=20

Subtask 1(5 分): n20n\leq 20

Subtask 2(12 分):n106n\leq 10^6

Subtask 3(28 分):n1012n\leq 10^{12}

Subtask 4(20 分):m=0m=0

Subtask 5(35 分):n1015n\leq 10^{15}

对于所有数据 2n10152\leq n\leq 10^{15}0mmin(n,105)0\leq m\leq \min(n,10^5)2ain2\leq a_i\leq n, 且答案不超过 4×10184\times 10^{18}