能教我怎么优化么

编译通过...

├ 测试数据 01:答案正确... 0ms

├ 测试数据 02:答案正确... 0ms

├ 测试数据 03:答案正确... 0ms

├ 测试数据 04:答案正确... 0ms

├ 测试数据 05:运行超时...

├ 测试数据 06:运行超时...

├ 测试数据 07:答案正确... 0ms

├ 测试数据 08:运行超时...

var n,s,k:longint;

m:int64;

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

procedure try(k:longint);

var i,j:longint;

begin

if k>n then begin inc(s);if s>=m then

begin for j:=1 to n do begin write(a[j],' '); end;halt; end end

else

begin

for i:=1 to n do

begin

if b[i]=0 then

begin

b[i]:=1;

a[k]:=i;

try(k+1);

b[i]:=0;

a[k]:=0;

end;

end;

end;

end;

begin

readln(n,m);

fillchar(b,sizeof(b),0);

try(1);

end.

4 条评论

  • @ 2013-10-07 08:32:16

    和我错的一样。。。

  • @ 2009-09-22 20:37:06

    水啊

    ...

    逆用康托展开

  • @ 2009-09-09 22:11:19

    这题就是用排列都超时!

    不过有一个优化!嘻嘻......

    加我QQ:840684004

    记得有附加信息哦!

  • @ 2009-09-08 12:50:01

    这题不是搜索............

    这是数论的题目,搜索必定超时

  • 1

信息

ID
1092
难度
5
分类
组合数学 点击显示
标签
(无)
递交数
4526
已通过
1400
通过率
31%
被复制
11
上传者