P9562 [SDCPC 2023] Matching
题目描述
给定长度为 $n$ 的整数序列 $a_1, a_2, \cdots, a_n$,我们将从该序列中构造出一张无向图 $G$。具体来说,对于所有 $1 \le i < j \le n$,若 $i - j = a_i - a_j$,则 $G$ 中将存在一条连接节点 $i$ 与 $j$ 的无向边,其边权为 $(a_i + a_j)$。
求 $G$ 的一个匹配,使得该匹配中所有边的边权之和最大,并输出最大边权之和。
请回忆:无向图的匹配,指的是从该无向图中选出一些边,使得任意两条边都没有公共的节点。特别地,不选任何边也是一个匹配。
输入格式
有多组测试数据。第一行输入一个整数 $T$ 表示测试数据组数。对于每组测试数据:
第一行输入一个整数 $n$($2 \le n \le 10^5$)表示序列的长度。
第二行输入 $n$ 个整数 $a_1, a_2, \cdots, a_n$($-10^9 \le a_i \le 10^9$)表示序列。
保证所有数据中 $n$ 之和不超过 $5 \times 10^5$。
输出格式
每组数据输出一行一个整数,表示匹配的最大边权之和。
**【样例解释】**
对于第一组样例数据,最优方案是选择连接节点 $3$ 和 $5$,节点 $4$ 和 $7$,以及节点 $8$ 和 $9$ 的三条边,边权之和为 $(5 + 7) + (6 + 9) + (1 + 2) = 30$。
对于第二组样例数据,由于每条边的边权都是负数,因此最优匹配不应该选择任何边,答案为 $0$。
对于第三组样例数据,由于图中不存在任何边,因此答案为 $0$。
说明/提示
For the first sample test case, the optimal choice is to choose the three edges connecting vertex $3$ and $5$, vertex $4$ and $7$, and finally vertex $8$ and $9$. The sum of weight is $(5 + 7) + (6 + 9) + (1 + 2) = 30$.
For the second sample test case, as all edges have negative weights, the optimal matching should not choose any edge. The answer is $0$.
For the third sample test case, as there is no edge in the graph, the answer is $0$.