编程题
### 问题描述 辉神大陆有 $n$ 个城市,其中第 $i$ 座城市的繁荣度为 $a_i$。辉神大陆中任意两个城市之间都可以修建双向道路,在第 $i$ 座城市和第 $j$ 座城市之间修建道路可以带来 $a_i \mathbin{\mathrm{and}} a_j$ 的繁荣度。其中 $\mathbin{\mathrm{and}}$ 表示按位与运算,例如 $2 \mathbin{\mathrm{and}} 3=2$。 辉神大陆中的小徐决定修建若干条道路,使得任意两个城市之间都可以只通过他新修建的道路直接或者间接到达,为了发扬节约精神,他决定修建恰好 $n-1$ 条道路。一个修建方案的繁荣度是所有要修建的道路带来的繁荣程度之和。 小徐决定在所有可行的方案中选择繁荣度最大的方案,并想知道最大繁荣度。 ### 输入格式 第一行两个正整数 $n, m$。 接下来一行 $n$ 个非负整数表示 $a_i$。 ### 输出格式 输出所有方案中最大的繁荣度。 ### 样例输入 ``` 3 2 1 2 3 ``` ### 样例输出 ``` 3 ``` ### 评测数据规模 $1 \leq n \leq 10^5$,$1 \leq m \leq 18$,$0 \leq a_i < 2^m$。
查看答案
赣ICP备20007335号-2