public static int SubsetXORSum(byte[] array)
{
int vectorSize = Vector256<byte>.Count;
int res = 0;
fixed (byte* ptr = array)
{
Vector256<byte> mask = Vector256<byte>.Zero;
for (int i = 0; i < array.Length; i += vectorSize)
{
mask = Avx2.Or(mask, *(Vector256<byte>*)(ptr + i));
}
byte* maskPtr = (byte*)&mask;
for (int j = 0; j < vectorSize; j++)
{
res |= *(maskPtr + j);
}
}
return res << array.Length - 1;
}
用C#找出所有子集的异或总和再求和(力扣 )
于 2024-07-24 11:28:02 首次发布