101 条题解
-
0527971925 LV 10 @ 2009-10-30 08:30:49
啥都不想说了,很老很老的题
-
02009-10-30 08:28:31@
var i:longint;
x,n,ans:int64;
begin
readln(n);
for i:=1 to n do
begin
read(x);
ans:=ans xor x;
end;
writeln(ans);
end. -
02009-10-30 08:27:53@
貌似是很旧很旧的题了,matrix67神牛讲过的。
位运算,xor秒掉,不过我倒是交了好几次,忘了输出和要用int64
---|---|---|---|---|---|---|---|---|---|
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-10-30 08:11:03@
不会xor的的确可以用qsort过,不会超时,记得筷子个数虽然没有int64的,但是长度有int64的。
-
02009-10-30 07:25:22@
此题不错啊。
废话不多说。
因为只少了一支所以其他的数都是成对出现的。
因为
a xor a = 0
a xor 0 = a
所以成对出现的数异或后都变成0了(貌似异或有交换律和结合律),而单独出现的数异或0后仍为原数,这样一路异或下来就可以找出丢了的那支。 -
02009-10-29 23:32:29@
不知道快排为什么WA一个点?
-
02009-10-29 23:30:48@
流输入输出就是慢
-
02009-10-29 22:55:19@
xor即可。。无聊题。。直接在代码框里拍的。。
友情提示下。。要用int64。。 -
02009-10-29 22:54:55@
用xor即可
不应该难度3
-
02009-10-29 22:30:34@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:运行时错误...|错误号: 106
├ 测试数据 05:答案正确... 134ms
---|---|---|---|---|---|---|---|-
Unaccepted 有效得分:80 有效耗时:134msprogram P1684;
var
m,t:longint;
begin
m:=0;
readln;
repeat
read(t);
m:=m xor t;
until eof;
writeln(m);
end.神牛,救我啊!◎
-
02009-10-29 22:09:00@
...我同学快排284MS...
-
02009-10-29 22:07:46@
不懂XOR的人如何解(包括我)??
用快排,把数据排一遍,再找哪个数字出现了奇数次
最后一个点759MS
记得开INT64,所有的变量越大越好,数组也一样,别爆就行 -
02009-10-29 22:04:16@
unsigned long long......
-
02009-10-29 21:17:09@
超时....暴汗
-
02009-11-03 21:05:39@
考虑把数列排序,邻接的两个之间加入XOR操作符,会发现答案出来了。因为偶数项会被消掉
注意INT64接下来考虑下加强版:
有两个数出现奇数次。
做法:
从头到尾异或一遍,你就得到了需要求的两个数异或后的值。这两个数显然不相等,异或出来的结果不为0。我们可以据此找出两个数的二进制表达中不同的一位, 然后把所有这n个数分成两类,在那一位上是0的分成一类,在那一位上是1的分到另一类。对每一类分别使用这个问题的算法。 -
02009-10-29 21:01:00@
C++要用scanf读入……
-
02009-10-29 20:51:44@
我RP太低,竟然总是超时!!!
-
02009-10-29 21:18:12@
#include
using namespace std;
int main()
{
long long s=0,i,n,q;
cin>>n;
for(i=1;i -
02009-10-29 20:39:48@
AC人数光速飙升。
-
02009-10-29 20:25:57@
#include
using namespace std;
unsigned long long a,n,s;
int main ()
{
int i;
cin>>n;
s=0;
for (i=1;i>a;
s=s^a;
}
cout