讨论 / Round Numbers 位运算60分做法
leapoahead 2010-10-10 04:27:00
点我顶贴 收藏 删除
不知道这题到底咋搞的。。60分满足了= =。(原谅我比较没追求)

一个点超时三个点同答案WA。

状态: Unaccepted

测评机: Xeond[6]

得分: 60分

提交日期: 2010-8-8 12:07:00

有效耗时: 1437毫秒

测试结果1: 通过本测试点|有效耗时172ms

测试结果2: 通过本测试点|有效耗时46ms

测试结果3: 通过本测试点|有效耗时47ms

测试结果4: 通过本测试点|有效耗时47ms

测试结果5: 通过本测试点|有效耗时235ms

测试结果6: 通过本测试点|有效耗时890ms

测试结果7: 选手程序运行超过时限

测试结果8: 测试结果错误.错误结果为:1760693

正确结果应为:937563778

测试结果9: 测试结果错误.错误结果为:1760693

正确结果应为:34007808

测试结果10: 测试结果错误.错误结果为:1760693

正确结果应为:937891981

基本方法是k and 1就是取k二进制最后一位,然后k:=k shr 1 (k>>=1)

program rq41;

var s,t,k,a,zero,one,sum,i:int64;

begin

readln(s,t);

sum:=0;

i:=s;

while i <= t do begin

k:=i;

zero:=0;

one:=0;

while(k <> 0) do begin

a:=k and 1;

if (a = 1) then inc(one) else inc(zero);

k:=k shr 1;

end;

if (zero >= one) then begin inc(sum); end;

inc(i);

end;

writeln(sum);

end.

方法拙劣仅供参考

#1 leapoahead@2010-08-07 21:11:00
回复 删除
不知道这题AC方法怎么写的?
#2 pollow@2010-10-10 04:27:00
回复 删除
~与我的算法和错误结果一样...我当时一看结果,就想,考试的时候60分知足了......
查看更多回复
提交回复