我有几个数字数组(每个数组的元素只能取0或1),如下:
v1: 1; 0; 0; 1; 1; v2: 0; 1; 0; 0; 1; v3: 1; 1; 0; 1; 0; v4: 1; 0; 0; 1; 0; v5: 1; 1; 0; 1; 1; v6: 1; 1; 0; 1; 1;
我希望找到这样的子集,使得当这些数组相加时,所得到的结果数组中的每个元素都是2的倍数。例如,v1+v2+v3可以得到一个结果数组为2, 2, 0, 2, 2。结果数组可以是任何2的倍数。
另一个例子:
v1: 1, 1, 1, 0, 1, 0 v2: 0, 0, 1, 0, 0, 0 v3: 1, 0, 0, 0, 0, 0 v4: 0, 0, 0, 1, 0, 0 v5: 1, 1, 0, 0, 1, 0 v6: 0, 0, 1, 1, 0, 0 v7: 1, 0, 1, 1, 0, 0
在这个例子中,v1+v2+v5和v3+v6+v7是合适的答案。
我有一个暴力解决方案,但我想检查是否有更有效的方法。这与子集求和问题等价吗?