XORAK1XORAK 考虑一个边权为非负整数的无向连通图,节点编号为 1 到 N,试求出一条从 1 号节点到 N 号节点的路径,使得路径上经过的边的权值的 XOR 和最大, 路径可以重复经过某些点或边,当一条边在路径中出现了多次时,其权值在计算 XOR 和时也要被计算相应多的次数,具体见样例。
XOR(异或)是一种二元逻辑运算,其运算结果当且仅当两个输入的布尔值不相等时才为真,否则为假。 XOR 运算的真值表如下(表示真,表示假): 而两个非负整数的是指将它们表示成二进制数,再在对应的二进制位进行运算。 譬如的计算过程如下: 故 12 XOR 9 = 5。 容易验证, XOR 运算满足交换律与结合律,故计算若干个数的 XOR 时,不同的计算顺序不会对运算结果造成影响。从而,可以定义 K 个非负整数 A1,A2,…,AK−1A_1,A_2,dots ,A_{K-1}A1,A2,…,AK−1AKA_KAKA的 XOR 和为 A1 XOR A2 XOR…XOR AK−1 XOR AKA_1 XOR A_2 XOR dots XOR A_{K-1} XOR A_KA1 XOR A2 XOR…XOR AK−1 XOR AK 考虑一个边权为非负整数的无向连通图,节点编号为 1 到 N,试求出一条从 1 号节点到 N 号节点的路径,使得路径上经过的边的权值的 XOR 和最大。 路径可以重复经过某些点或边,当一条边在路径中出现了多次时,其权值在计算 XOR 和时也要被计算相应多的次数,具体见样例。