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 $ 。