【发布时间】:2016-12-17 08:33:10
【问题描述】:
给定 1 和 N ,我们需要找到从 1 到 N 的所有数字的 XOR 值之和, 例如对于 N ,我们需要计算函数 F
F(k){
ans =0;
while(k>0){
ans= ans^(k%10);
k/=10;
}
return ans;
}
对于 [1,N] 中的 K。
有没有一种有效的方法可以说 . 据我所知,我们应该计算值 V 使用 DP 产生 XOR 的次数,但我想不出实现它的方法。
请给出一些想法。
示例:F (37) = 3 ^ 7 = 4
注意:N 可以大到 10^18
【问题讨论】:
-
你确定它是十进制数字的异或,而不是二进制数字的异或吗?
-
我添加了一个例子
-
您真正需要知道的是范围 1..N 中每个数字 (0..9) 的出现次数是奇数还是偶数。
-
您只需计算该组数字中每个数字重复的次数。排除偶数位数,异或奇数位数
标签: algorithm dynamic-programming