回复 8# 无心人 的帖子
我看有人不到0.1秒就算出来了,我的大概是0.6左右,而且我的方法比较繁琐,程序比较长(近300行),感觉肯定有更简单,更简洁的方法! 我觉得不用排序啊计算A同比A小的数logXor
也是个n^2 / 2的计算量
直接计算也是n^2 / 2工作量
因为xor运算是可以交换的啊 因为XOR 可交换
只要计算不同的两个数的 XOR就可以了
相同的XOR后是0,可不计算
结果乘以2就行了 原帖由 无心人 于 2009-3-12 15:13 发表 http://bbs.emath.ac.cn/images/common/back.gif
因为XOR 可交换
只要计算不同的两个数的 XOR就可以了
相同的XOR后是0,可不计算
结果乘以2就行了
恩!乘以2已经用上了,相同数的处理应该加入进去!我想一下!
回复 12# 无心人 的帖子
排序速度应该几乎不影响最后总的时间,反正就是挺快的,主要是为了后面分治时比较简单! 什么叫分治??你打算进行10^n的比较?? :lol
允许用汇编么?
呵呵 让我想想
你打算排序后简化求对数的运算
那能不能找个速度快的对数算法???
回复 18# 无心人 的帖子
恩,主要是最高bit不同的情况,可以批量运算,比如说1200000同200000以下的都可以不用算了,xor后肯定都 > 1000000,取log10的整数部分是一个结果!这样可以减少一部分运算量!
另外如果对每个数求了最高位,那么转化成对数也应该是挺快的! :)
加入10^n进入序列??????
再排序?????
如何
排完后
根据10^n分割成39块不同的数据
则程序绝大部分运算变成加法了吧??