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.
方法拙劣仅供参考