CF1554B Cobb

题目描述

给你 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $ 和一个整数 $ k $ 。 求对于所有满足 $ 1 \le i < j \le n $ 的整数对 $ (i, j) $ 的式子 $ i \cdot j - k \cdot (a_i | a_j) $ 的值的最大值。即 $$ \max\{ i \cdot j - k \cdot (a_i | a_j) \}(1 \le i < j \le n) $$ 在这里, $ | $ 是 [按位或运算符](https://en.wikipedia.org/wiki/Bitwise_operation#OR)。

输入格式

第一行包含一个整数 $ t $ ( $ 1 \le t \le 10000 $ ) — 测试用例的数量。 每个测试用例的第一行包含两个整数 $ n $ ( $ 2 \le n \le 10^5 $ ) 和 $ k $ ( $ 1 \le k \le \min(n, 100) $ )。 每个测试用例的第二行包含 $ n $ 个整数 $ a_1, a_2, \ldots, a_n $ ( $ 0 \le a_i \le n $ )。 保证所有测试用例的 $ n $ 之和不超过 $ 3 \cdot 10^5 $ 。

输出格式

对于每个测试用例,打印一个整数 — $\max(i\cdot j-k\cdot(a_i\texttt{ or } a_j))$ 的最大值。

说明/提示

让 $ f(i, j) = i \cdot j - k \cdot (a_i | a_j) $ 。 在第一个测试样例中, - $ f(1, 2) = 1 \cdot 2 - k \cdot (a_1 | a_2) = 2 - 3 \cdot (1 | 1) = -1 $ . - $ f(1, 3) = 1 \cdot 3 - k \cdot (a_1 | a_3) = 3 - 3 \cdot (1 | 3) = -6 $ . - $ f(2, 3) = 2 \cdot 3 - k \cdot (a_2 | a_3) = 6 - 3 \cdot (1 | 3) = -3 $ . 所以最大值是 $ f(1, 2) = -1 $ 。 在第四个测试样例中,最大值是 $ f(3, 4) = 12 $ 。