358 条题解

  • 0
    @ 2009-05-14 23:00:17

    编译通过...

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

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

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

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

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

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

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

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

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

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

    记忆化

  • 0
    @ 2009-05-14 20:24:17

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    记忆化搜索

  • 0
    @ 2009-08-06 09:48:09

    可恶的9号点!!!!!!!!

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

  • 0
    @ 2009-05-02 09:31:04

    傻傻得交了三次,第一次是边界定错了,第二次只定了边界..第三次0MS,AC...

  • 0
    @ 2009-04-26 20:42:57

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

    一定要开longint,不然第9组数据过不了!!!

    var i,j,n,m,max:longint;

    a,f:array[0..501,0..501] of longint;

    procedure fdq(x,y:longint);

    begin

    f[x,y]:=1;

    if (a[x,y]=f[x,y] then

    f[x,y]:=f[x-1,y]+1;

    end;

    if (a[x,y]=f[x,y] then

    f[x,y]:=f[x,y-1]+1;

    end;

    if a[x,y]=f[x,y] then

    f[x,y]:=f[x+1,y]+1;

    end;

    if a[x,y]=f[x,y] then

    f[x,y]:=f[x,y+1]+1;

    end;

    end;

    begin

    readln(n,m);

    for i:=0 to n+1 do

    for j:=0 to m+1 do begin

    a:=0;

    f:=0;

    end;

    for i:=1 to n do begin

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

    readln;

    end;

    for i:=1 to n do

    for j:=1 to m do

    if f=0 then fdq(i,j);

    max:=0;

    for i:=1 to n do

    for j:=1 to m do

    if f>max then max:=f;

    writeln(max);

    end.

  • 0
    @ 2009-04-20 22:34:23

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    本题如果要使用动态规划来处理的话,就需要先对点的高度进行排序

    然后从最高高度的点开始,延高度依次排下

    这样排序耗费O(crlogcr)的时间

    而运算耗费O(cr)的时间

    对于c=500,r=500的极限数据来说

    需要大约5250000次计算(250000次读入,250000次计算,4750000次排序)

    而如果使用记忆化搜索的话,需要访问cr个节点,每个节点至多被更新cr次

    时间复杂度为O(c^2*r^2)

    对于极限数据来说 需要31250000000次计算,虽然平均速度要高于这个值

    但也不会低于100000000次

    现贴出核心代码:

    for i:=1 to c*r do

    begin

    g[a[i].x,a[i].y]:=1;

    if (b[a[i].x,a[i].y]

  • 0
    @ 2009-04-11 17:33:42

    看这是个啥么.....

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2009-03-31 22:13:13

    鄙视 VIJOS !!!!!

    明明写着 0

  • 0
    @ 2009-03-26 17:17:54

    program vijos1011;

    const

    arround:array[1..4,1..2]of integer=((-1,0),(1,0),(0,-1),(0,1));

    var

    n,m,i,j,max :longint;

    high,a :array[0..501,0..501]of longint;

    procedure search(x,y:integer) ;

    var

    i,x1,y1 :longint;

    begin

    for i:=1 to 4 do

    begin

    x1:=x+arround;

    y1:=y+arround;

    if(x1>0)and(x10)and(y1a[x,y])and(high[x1,y1]

  • 0
    @ 2009-03-27 17:54:41

    这是用的 记忆化 搜索啊

    例子都过了

    就是过不了 这有10分

    求哪位牛人 路过 看一下 救小弟一马 !!!!!!

    #include

    using namespace std;

    const long int MAXN=32000;

    int n,m;

    long int map[501][501];

    long int map1[501][501];

    int next[5][3]={{0,0,0},{0,-1,0},{0,0,1},{0,1,0},{0,0,-1}};

    int refer(int a,int b)

    {

      if(!map1[a])

      {

      int vau=1;

      for(int i=1;i>n>>m;

      for(int i=1;imap[i][j];

      for(int i=0;i

  • 0
    @ 2009-03-18 23:14:43

    #include

    #include

    #define max(a,b) a>b?a:b

    using namespace std;

    long n,r,c,ins[502][502],map[502][502],opin;

    int work(int i,int j){

    if(map[i][j]==0){

    if(ins[j]

  • 0
    @ 2009-03-16 19:00:17

    帮帮忙帮帮忙帮帮忙帮帮忙帮帮忙帮帮忙帮帮忙帮帮忙

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    Unaccepted 有效得分:90 有效耗时:40ms

    var a,b:array[0..501,0..501] of longint;

    i,j,k,s,l,hang,lie:longint;

    procedure try(x,y,sum:longint);

    var i,j,l:longint;

    {if b[x,y]0 then

    begin s:=sum+b[x,y]+1; end else}

    begin

    if (x1) and(a[x,y]>a[x-1,y]) then try(x-1,y,sum+1);

    if (xhang)and(a[x,y]>a[x+1,y]) then try(x+1,y,sum+1);

    if (y1) and(a[x,y]>a[x,y-1]) then try(x,y-1,sum+1);

    if (ylie) and(a[x,y]>a[x,y+1]) then try(x,y+1,sum+1);

    b[x,y]:=sum+1;

    {if kk then k:=sum+1;

    end;

    begin

    readln(hang,lie);

    for i:=1 to hang do

    begin

    for j:=1 to lie do

    read(a);

    readln;

    end;

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

    for i:=1 to hang do

    for j:= 1 to lie do

    try(i,j,0);

    writeln(k);

    end.

  • 0
    @ 2009-03-16 17:57:48

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

    Unaccepted 有效得分:0 有效耗时:0ms

  • 0
    @ 2009-03-16 17:43:59

    直接搜。。。。。。

  • 0
    @ 2009-03-13 20:06:33

    记忆化搜索

    AC~~~~~~~

  • 0
    @ 2009-03-09 18:21:05

    编译通过...

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

     ├ 错误行输出

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

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

    谁有我BT?

  • 0
    @ 2009-02-11 16:36:45

    编译通过...

    ├ 测试数据 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-01-29 03:48:31

    坚决不做搜索

    即使慢也可以

    恭喜我的 qsort+DP 成功AC

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    @ 2009-01-23 21:05:38

    写疵了……长了点……不过没大碍……

    记忆化搜索……

    {——————————————————————————————}

    编译通过...

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

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

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

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

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

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

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

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

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

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

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

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

    var

    a,f:array[1..500,1..500]of longint;

    n,m:longint;

    function max(a,b:longint):longint;

    begin

    if a>b then exit(a) else exit(b);

    end;

    function dfs(x,y:longint):longint;

    var

    t1,t2,t3,t4:longint;

    maxa:longint;

    begin

    if ((a[x-1,y]>a[x,y]) or (x-1=0)) and

    ((a[x+1,y]>a[x,y]) or (x+1>n)) and

    ((a[x,y-1]>a[x,y]) or (y-1=0)) and

    ((a[x,y+1]>a[x,y]) or (y+1>m)) then exit(1);

    maxa:=0;

    t1:=-1;

    t2:=-1;

    t3:=-1;

    t4:=-1;

    if (x+1

  • 0
    @ 2009-01-15 09:29:24

    想搜就搜

    const

    aa:array[1..4,1..2] of integer=((1,0),(-1,0),(0,1),(0,-1));

    var

    n,m,i,j,max:longint;

    a,ff:array[1..500,1..500] of longint;

    procedure fff(x,y:integer);

    var

    i,pi,pj:longint;

    begin

    for i:=1 to 4 do

    begin

    pi:=x+aa;

    pj:=y+aa;

    if (pi>0)and(pi0)and(pja[x,y])and(ff[pi,pj]max

    then max:=ff;

    writeln(max);

    end.

信息

ID
1011
难度
6
分类
动态规划 点击显示
标签
递交数
10335
已通过
2938
通过率
28%
被复制
23
上传者