题解

55 条题解

  • 0
    @ 2012-10-21 14:22:49

    为么我觉得这题很麻烦?

  • 0
    @ 2009-11-11 21:07:07

    编译通过...

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

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

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

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

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

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

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

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

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

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

    50题紀念

  • 0
    @ 2009-11-10 12:04:31

    编译通过...

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

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

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

    ├ 测试数据 04:答案错误... ├ 标准行输出 50

     ├ 错误行输出 35

    ├ 测试数据 05:答案错误... ├ 标准行输出 1

     ├ 错误行输出 0

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

    ├ 测试数据 07:答案错误...程序输出比正确答案长

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

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

    ├ 测试数据 10:答案错误... ├ 标准行输出 47

     ├ 错误行输出 35

    var

    n,i,j,k,x:longint;

    f,f1:array[1..30,-50..50]of boolean;

    begin

    assign(input,filename+'.in');reset(input);

    assign(output,filename+'.out');rewrite(output);

    read(n,x);fillchar(f1,sizeof(f1),false);f1[1,x]:=true;f1[1,-x]:=true;

    for i:=2 to n do

    begin fillchar(f,sizeof(f),false);

    for j:=1 to i do

    begin

    read(x);

    if j=1 then

    begin for k:=-50 to 50 do

    if f1[1,k]then

    begin if (k+x>=-50)and(k+x=-50)and(k-x=-50)and(k+x=-50)and(k-x1)and(j=-50)and(k+x=-50)and(k-x=-50)and(k+x=-50)and(k-x=-50)and(k+x=-50)and(k-x=-50)and(k+x=-50)and(k-x

  • 0
    @ 2009-11-09 13:35:19

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2009-11-03 19:39:26

    My Love-Cici~

  • 0
    @ 2009-10-31 22:15:37

    这道题为什么f:array[1..60,1..30,-50..50]也能过,感觉应该

    f:array[1..30,1..30,-3000..3000]

  • 0
    @ 2009-10-23 14:51:29

    var

    f:array[1..60,1..30,-50..50]of boolean;

    a:array[1..60,1..30]of integer;

    n,i,j,k,ans:longint;

    begin

    readln(n);

    for i:=1 to n do

    begin

    for j:=1 to i do read(a);

    readln;

    end;

    for i:=n+1 to 2*n-1 do

    begin

    for j:=1 to 2*n-i do read(a);

    readln;

    end;

    fillchar(f,sizeof(f),false);

    f[1,1,a[1,1]]:=true;

    for i:=2 to n do

    for j:=1 to i do

    for k:=-50 to 50 do

    begin

    if j>1 then

    begin

    if ((k+a)=-50) then f:=(f[i-1,j-1,k+a])or(f);

    if ((k-a)=-50) then f:=(f[i-1,j-1,k-a])or(f);

    end;

    if j

  • 0
    @ 2009-10-22 13:07:59

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    可惜可惜,没有妙杀。

    可以用“搭建双塔”的思想。

    上次推错了,上半个三角形和下半个三角形还是有少少不同。

    if (k-v1>min) and (k-v1min) and (k+v1min) and (k-v2min) and (k+v2

  • 0
    @ 2009-10-20 13:38:36

    为什么我超时啊才30分..

  • 0
    @ 2009-10-09 15:59:02

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    鉴定完毕,奇水无比!

  • 0
    @ 2009-10-08 19:53:31

    水题啊

  • 0
    @ 2009-10-04 23:28:28

    秒杀!!

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

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

    var n,i,j,k,t,min:integer;

    a:array[1..30,1..30]of integer;

    f:array[0..61,0..31,-100..100]of boolean;

    begin

    read(n);

    for i:=1 to 2*n-1 do

    for j:=1 to n-abs(n-i) do

    read(a);

    f[1,1,a[1,1]]:=true;

    for i:=2 to n do

    for j:=1 to n-abs(n-i) do

    for k:=-50 to 50 do

    begin

    if f[i-1,j-1,k-a]=true then

    f:=true;

    if f[i-1,j-1,k+a]=true then

    f:=true;

    if f[i-1,j,k-a]=true then

    f:=true;

    if f[i-1,j,k+a]=true then

    f:=true;

    end;

    for i:=n+1 to 2*n-1 do

    for j:=1 to n-abs(n-i) do

    for k:=-50 to 50 do

    begin

    if f[i-1,j+1,k-a]=true then

    f:=true;

    if f[i-1,j+1,k+a]=true then

    f:=true;

    if f[i-1,j,k-a]=true then

    f:=true;

    if f[i-1,j,k+a]=true then

    f:=true;

    end;

    min:=maxint;

    for i:=-50 to 50 do

    if f[2*n-1,1,i]=true then

    if abs(i)

  • 0
    @ 2009-09-23 22:52:02

    程序还是有点麻烦的说~~~~~循环真多~~~~~~

  • 0
    @ 2009-09-12 21:36:52

    汗~~~上下两部分不一样啊………………

    方程:

    f=f[i+1,j-1,k-a] or f[i+1,j-1,k+a] or f[i+1,j,k-a] or f[i+1,j,k+a] (1

  • 0
    @ 2009-08-21 09:40:09

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var

    i,j,n,min,k:longint;

    s:array[1..100,1..100] of longint;

    a:array[0..61,0..61,-3000..3000] of boolean;

    function allow(k:longint):boolean;

    begin

    if (k>=-3000) and (k

  • 0
    @ 2009-08-14 18:07:24

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    第一次把第1到2n-1行都混在一起处理,也都对了7个点,可见数据蛮弱的。。。

    第二次把第1到n行,n+1到2n-1分开处理就秒了~~

    胸中憋了一个下午的郁闷之气终于没了

  • 0
    @ 2009-08-12 08:45:29

    第600个通过......

    纪念下!

  • 0
    @ 2009-08-11 00:35:20

    ..。。辛亏我不会因为这道题恶心孙燕姿。。。第1个点和第4点输出答案比正确答案长。。。10次了。。。

    第12次。。。冷静下来。。发现只可能边界问题。。终于AC。。。头发白了…………

    居然是简单的初始化搞错了~12次。。。。。

  • 0
    @ 2009-08-06 17:39:56

    数据好弱额。。。。。。

    直接秒。。。。。。

    0ms。。。。。。

  • 0
    @ 2009-08-03 14:02:30

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    神诶 秒杀...

    ---|---|---|---|---|---|---|---|---|---|---|---|---|晒程序---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|-

    program p1280;

    var n,now:longint;

    a:array[0..61,0..31] of integer;

    f:array[0..1,0..31,-3000..3000] of boolean;

    procedure init;

    var i,j:longint;

    begin

    readln(n);

    for i:=1 to n do

    begin

    for j:=1 to i do read(a);

    readln;

    end;

    for i:=n+1 to 2*n-1 do

    begin

    for j:=1 to 2*n-i do read(a);

    readln;

    end;

    end;

    procedure dp;

    var i,j,k:longint;

    begin

    fillchar(f,sizeof(f),0);

    f[0,1,a[1,1]]:=true;

    now:=0;

    for i:=2 to n do

    begin

    now:=1-now;

    for j:=1 to i do

    for k:=-2700 to 2700 do

    f[now,j,k]:=f[1-now,j,k+a] or f[1-now,j,k-a] or f[1-now,j-1,k+a] or f[1-now,j-1,k-a];

    end;

    for i:=n+1 to 2*n-1 do

    begin

    now:=1-now;

    for j:=1 to 2*n-i do

    for k:=-2700 to 2700 do

    f[now,j,k]:=f[1-now,j,k+a] or f[1-now,j,k-a] or f[1-now,j+1,k+a] or f[1-now,j+1,k-a];

    end;

    end;

    procedure outit;

    var i:longint;

    begin

    for i:=0 to 2900 do

    if f[now,1,i] or f[now,1,-i] then begin

    writeln(i); exit;

    end;

    end;

    begin

    init;

    dp;

    outit;

    end.

信息

ID
1280
难度
6
分类
动态规划 点击显示
标签
(无)
递交数
1118
已通过
331
通过率
30%
被复制
2
上传者