142 条题解

  • 0
    @ 2008-11-13 08:47:03

    编译通过...

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

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

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

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

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

    ├ 测试数据 06:答案正确... 416ms

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

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

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

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

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:1188ms

  • 0
    @ 2008-11-13 07:29:24

    Program Vijos_P1146;

    const

    SIZE = 5;

    M = SIZE * SIZE;

    MAXK = 12;

    d: array[1..M] of dword = (

    \(00000001, \)00000002, \(00000004, \)00000008, \(00000010,
    \)00000020, \(00000040, \)00000080, \(00000100, \)00000200,

    \(00000400, \)00000800, \(00001000, \)00002000, \(00004000,
    \)00008000, \(00010000, \)00020000, \(00040000, \)00080000,

    \(00100000, \)00200000, \(00400000, \)00800000, \(01000000);
    jgr: array[1..SIZE] of dword = (
    \)0000001F, \(000003E0, \)00007C00, \(000F8000, \)01F00000);

    jgc: array[1..SIZE] of dword = (

    \(00108421, \)00210842, \(00421084, \)00842108, \(01084210);
    jgd1: dword = \)01041041;

    jgd2: dword = $00111110;

    var

    n, k, tot: longint;

    h, g: dword;

    a: array[0..M] of longint;

    procedure dfs(depth: longint);

    var

    i: longint;

    function Count: longint;

    var

    c: longint;

    begin

    c := 0;

    c := c + ord(g and jgr[1] = jgr[1]) + ord(g and jgr[2] = jgr[2]) + ord(g and jgr[3] = jgr[3]) + ord(g and jgr[4] = jgr[4]) + ord(g and jgr[5] = jgr[5]);

    c := c + ord(g and jgc[1] = jgc[1]) + ord(g and jgc[2] = jgc[2]) + ord(g and jgc[3] = jgc[3]) + ord(g and jgc[4] = jgc[4]) + ord(g and jgc[5] = jgc[5]);

    c := c + ord(g and jgd1 = jgd1) + ord(g and jgd2 = jgd2);

    exit(c);

    end;

    begin

    if depth = n then

    h := h or d[Count + 1]

    else if a[depth] - depth

  • 0
    @ 2008-11-08 12:10:34

    居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。居然。。。要交表

  • 0
    @ 2008-11-03 19:07:22

    编译通过...

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

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

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

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

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

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

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

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

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

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

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    没打表,程序71行!!提交了3次,,第二次竟然忘把调试输出去掉!!!

    我的AC率啊!!!

  • 0
    @ 2008-10-29 21:52:34

    打表过了,但是哪位大牛能告诉我你们怎么打出的表啊???

    既然都打出表了,为什么不直接交打表的那个程序呢?

    用搜索打的表吗?

    那个随机化打表是什么意思啊 ???????

  • 0
    @ 2008-10-29 19:31:12

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    严重BS自己..!!

    ps:在想搜索方法~~

  • 0
    @ 2008-10-21 13:14:42

    交表 怎么能这样——————————?????????????!!!!!!!!!!

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2008-10-16 15:14:27

    表。。。。。。。。。。。。

  • 0
    @ 2008-10-10 23:41:20

    宁愿超时也不愿交表……自欺欺人的通过率……

    dfs+回溯,优化为棋子数>=13时把“摆棋子”变成“摆空格”,还是有2个超时,想不到更好的优化方法,请有心做这题的高手指点。

    program P1146;

    var

    map:array[1..5,1..5]of boolean;

    k:array[1..12]of boolean;

    i,sum,maxN:integer;

    putspace:boolean;

    procedure init;

    begin

    readln(maxN);

    fillchar(k,sizeof(k),false);putspace:=false;

    if maxN>12 then

    begin

    putspace:=true;

    maxN:=25-maxN;

    fillchar(map,sizeof(map),true);

    end

    else fillchar(map,sizeof(map),false);

    end;

    procedure count;

    var

    i,j,c:integer;

    flag:boolean;

    begin

    c:=0;

    for i:=1 to 5 do

    begin

    flag:=true;

    for j:=1 to 5 do if not map then begin flag:=false; break; end;

    if flag then inc(c);

    flag:=true;

    for j:=1 to 5 do if not map[j,i] then begin flag:=false; break; end;

    if flag then inc(c);

    end;

    flag:=true;

    for i:=1 to 5 do if not map then begin flag:=false; break; end;

    if flag then inc(c);

    flag:=true;

    for i:=1 to 5 do if not map then begin flag:=false; break; end;

    if flag then inc(c);

    k[c]:=true;

    end;

    procedure search(n,x,y:integer);

    var

    i,j:integer;

    begin

    if n=maxN+1 then count else

    begin

    if x>5 then exit;

    if y

  • 0
    @ 2008-10-08 17:37:43

    随机化产生表,交. 要相信自己的表!我的原来对的...多交一次

  • 0
    @ 2008-10-03 12:53:52

    program vijos_1146;

    const a:array[1..25]of integer=(0,0,0,0,1,1,1,1,3,3,3,6,6,10,10,15,21,21,28,28,35,30,30,27,12);

    var n:integer;

    begin

    read(n);

    write(a[n]);

    end.

    哎,这是一道数学题.

    算出来然后CHEAT就可以了.

  • 0
    @ 2008-09-29 22:39:32

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

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

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

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

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

    ├ 测试数据 06:答案正确... 838ms

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

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

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

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

    回溯法,逐格做

    用一个[1..12]的数组记录“五横五纵对角线”的棋子个数

  • 0
    @ 2008-09-28 23:39:18

    编译通过...

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

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

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

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

    ├ 测试数据 05:答案正确... 259ms

    ├ 测试数据 06:答案正确... 712ms

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

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

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

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

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:2658ms

    我没交表,是这个效果

  • 0
    @ 2008-09-26 21:50:48

    ...纯洁地搜索剪枝,再搜再剪... 结果, 为了通过率能保持在双位数,只能无奈地交表了..

  • 0
    @ 2008-09-24 20:03:05

    编译通过...

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

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

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

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

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

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

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

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

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

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

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    CHEAT的。

  • 0
    @ 2008-09-15 15:23:03

    我编了个随机化的程序来打表

  • 0
    @ 2008-09-11 20:00:39

    直接CHEAT。。

    不想做。。

    0,0,0,0,1,1,1,1,3,3,3,6,6,10,10,15,21,21,

    28,28,35,30,30,27,12);

  • 0
    @ 2008-09-09 17:56:25

    编译通过...

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

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

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

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

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

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

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

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

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

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

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    原来so easy!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  • 0
    @ 2008-08-31 17:22:34

    不想交表,无奈交表

  • 0
    @ 2008-08-31 14:17:18

    //const a:array[1..25]of integer=(0,0,0,0,1,1,1,1,3,3,3,6,6,10,10,15,21,21,

    28,28,35,30,30,27,12);

信息

ID
1146
难度
3
分类
搜索 | 搜索与剪枝 点击显示
标签
(无)
递交数
1963
已通过
1055
通过率
54%
被复制
8
上传者