讨论 / 哪位大牛有什么思路?
gaoxin 2011-11-09 21:22:00
点我顶贴 收藏 删除
数据太大导致页面太卡,差点死机.

这个程序应该对的,为什么连输出都少了好多

var n,i,j,k,t,x,y,z:longint;

//t是2的个数

begin

readln(n);

for i:=1 to n do

begin

readln(x,y);

if y>x div 2 then y:=x-y;

t:=0;

for j:=2 to y do

begin

z:=j;

while not odd(z) do

begin

dec(t);

z:=z shr 1;

end;

end;

for j:=x-y+1 to x do

begin

z:=j;

while not odd(z) do

begin

inc(t);

z:=z shr 1;

end;

end;

if t>0 then writeln(0) else writeln(1);

end;

end.

#1 姚斯宇@2008-02-24 10:05:00
回复 删除
虽然我看不太懂你的代码,不过,我的方法AC了!

对于输入的 n,k;

将 n 转为二进制,存入数组 a[ ] ,为w1位数;

将 k 转为二进制,存入数组 b[ ] ,为w2位数;

flag=1;

for i=1 to w2 ;

{

如果a[i]=0且 b[i]=1;

flag=0;

}

if flag=1 结果为奇数;

else 结果为偶数;

这就是为什么C(7,k)总为奇数,

因为 a[] 为1 1 1 1;

没有“0”,所以flag=1;

这个方法应该是最快了吧,欢迎大牛指出不足之处,谢谢!

#2 caoyuan9642@2008-06-04 03:49:00
回复 删除
Why?

一头雾水

#3 wish@2008-06-04 03:59:00
回复 删除
自己看数论吧

#4 骚王竞走哥@2011-11-09 21:22:00
回复 删除
无聊数学题目..

我数学竞赛考试时遇到类似的..

查看更多回复
提交回复