| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1691 人关注过本帖, 2 人收藏
标题:很有趣的一道题,出乎意料的答案
只看楼主 加入收藏
小赵q1
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:492
专家分:777
注 册:2011-8-26
收藏
得分:0 
我来给你顶顶贴。
2012-03-14 06:08
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
回复 17楼 czz5242199
原来可以存下来啊……但是我开数组到1000000的时候就re了

酱油实习生
2012-03-15 13:17
岸芷町蓝
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-3-15
收藏
得分:0 
回复 2楼 墨清扬
我想问一下 关于这个时间是怎样确定的? 我怎么知道一自己编的语句反复执行需要多长时间呢?我还是一只小菜鸟  请求答复···谢谢···
2012-03-15 14:15
墨清扬
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:294
专家分:817
注 册:2011-10-4
收藏
得分:0 
回复 23楼 岸芷町蓝
搜索时间复杂度就行了

酱油实习生
2012-03-17 10:01
BianChengNan
Rank: 8Rank: 8
等 级:贵宾
威 望:13
帖 子:302
专家分:972
注 册:2011-11-30
收藏
得分:0 
以下是引用beyondyf在2012-3-13 19:44:25的发言:

呵呵,确实很巧妙。首先仍是获得这两个奇次出现的数(设为A和B吧,方便下面的叙述)的异或值ans。
下一步有意思,找到A和B不同的一位P。这个很重要。因为A和B在这一位上各出现奇数次,而A、B是不相等的。所以这一位1只属于其中一个,不会A、B同时在这一位上为1。其它出现偶数次的数不需要考虑,在之后的异或中会被抵消掉。
之后将这一位为1的数异或在一起为ans1,这一位为0的数异或在一起ans2。这样就将两个出现奇数次的数分离到了两个集合里。
ans1、ans2里各包含一个出现奇次的数。异或后的数就是这两个了。

确实不错。关于这个不同位的找法小曹是从高到低找的。也可以从低到高找,这都无所谓,找到一个在ans中为1的位那必然是A、B互不相同的位。

纠正一下BianChengNan。这里的数可以是任何类型的数,float、double并不影响这一算法的应用。原因,只要是二进制的数就可以,而计算机里有什么数不是二进制的呢?
我再好好想想哈,好像有道理。归为01什么都一样了,不用去考虑他是怎么存储的,但是我还是要好好想想

我的群:149544757 C/C++/Assembly 喜欢交流的朋友进,进群请写消息
2012-03-17 12:54
guowei3758
Rank: 2
来 自:陕西咸阳
等 级:论坛游民
帖 子:58
专家分:72
注 册:2010-4-9
收藏
得分:0 
有意思的程序
2012-03-17 12:55
langzhy
Rank: 2
等 级:论坛游民
帖 子:11
专家分:11
注 册:2011-9-3
收藏
得分:0 
顶下,好贴不能沉了
2012-03-17 13:58
快速回复:很有趣的一道题,出乎意料的答案
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017552 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved