P4570 [BJWC2011]元素 题解
这道题的解法:贪心+线性基。
由于线性基有一个优秀的性质:无论一个序列的线性基怎么变,其线性基内数的个数都是相同的,关键是看你怎么排列数的顺序,那么我们可以贪心。
考虑将所有石头按照魔力值从大到小排序,然后直接做线性基,能插入的数就加上其魔力值。
对于正确性证明:如果你对于线性基上面这个性质学过证明的话,这个是真的非常好证明的(甚至不用证)。
这里简要证明一下:
假设我们现在有一组线性基 \(d_1,d_2,...,d_k\),现在要插入 \(x\),而 \(x\) 插入失败。
这说明 \(d_{a_1} \oplus d_{a_2} \oplus ... \oplus d_{a_j}=x\)。
根据异或的性质:\(x \oplus d_{a_1} \oplus ... \oplus d_{a_{j-1}}=d_{a_j}\)。
那么实际上你调整这些数的插入顺序是没有问题的。
证毕。