Учитывая 1 и N, нам нужно найти сумму значений XOR цифр всех чисел от 1 до N, Например, для N, нам необходимо вычислить функцию FСумма xor цифр всех чисел от 1 до N, когда N очень велико.
F(k){
ans =0;
while(k>0){
ans= ans^(k%10);
k/=10;
}
return ans;
}
для K в [1, N].
есть эффективный способ сказать. Насколько я могу думать, мы должны подсчитать количество раз, когда значение V приведет к XOR с использованием DP, но я не думаю о способе его реализации.
Просьба дать некоторую идею.
Пример: F (37) = 3^7 = 4
Примечание: N может быть как 10^18
Вы уверены, что это xor десятичных цифр, а не xor двоичных цифр? – user31264
Я добавил пример – user269985
Все, что вам действительно нужно знать, является ли число вхождений каждой цифры (0..9) для диапазона 1..N нечетным или четным. –