讨论 / 只得70 为什么?
zsx1 2011-09-13 19:18:00
点我顶贴 收藏 删除
program xi;

type

as=array[1..1000000] of longint;

var a,b:as;

i,x,m:longint;

begin

read(m);

for i:=1 to m*2 do

a[i]:=i;x:=0;

repeat

for i:=1 to m do begin

b[i*2-1]:=a[i+m];b[i*2]:=a[i];end;x:=x+1;

if(b[1]<>1)and(b[2]<>2) then begin

for i:=1 to m do begin

a[i*2-1]:=b[i+m];a[i*2]:=b[i];end;x:=x+1;end;

until((a[1]=1)and(a[2]=2))or((b[1]=1)and(b[2]=2));

write(x);

end.

#1 zsx1@2009-04-23 22:33:00
回复 删除
数组开到1亿 还是70分

#2 小小小学生@2009-04-23 22:59:00
回复 删除
我没开数组,用Int64就过了。
#3 小小小学生@2009-04-23 22:59:00
回复 删除
我没开数组,用Int64就过了。
#4 xxvzy@2009-04-23 23:22:00
回复 删除
题解:

http://www.rqnoj.cn/Solution_Show.asp?DID=2366

#5 ahfy_zyt@2011-09-12 05:23:00
回复 删除
我也一样

program xpwt;

var

s:int64;

n:longint;

i,j,k:longint;

a,b:array [1..20000] of longint;

begin

readln(n);

for i:=1 to 2*n do a[i]:=i;

s:=0;

b:=a;

repeat

s:=s+1;

for i:=1 to n do

begin

b[2*i-1]:=a[n+i];

b[2*i]:=a[i];

end;

a:=b;

until a[1]=1;

writeln(s);

readln;

end.

#6 ahfy_zyt@2011-09-12 05:24:00
回复 删除
WA70

#7 woshishui---@2011-09-13 19:18:00
回复 删除
根本就用不着开数组啊,这题属于数学问题,懂得解法后,程序很好写啊。
查看更多回复
提交回复