Pascal深搜做法,第二个点TLE,90分。。。

P1434 [SHOI2002] 滑雪

永hhyhhyhhy乐 @ 2020-04-13 12:28:46

var
  n,m,i,j,sum,max,maxx:longint;
  a,f:array[0..99,0..100] of longint;
  b:array[1..4] of longint=(-1,0,1,0);
  c:array[1..4] of longint=(0,-1,0,1);
function pk(x,y:longint):longint;
var i:longint;
begin
  if f[x,y]=0 then exit;
  for i:=1 to 4 do
   if (a[x+b[i],y+c[i]]<a[x,y])and(f[x+b[i],y+c[i]]=-1) then
     begin
      inc(sum);
      f[x+b[i],y+c[i]]:=1;
      if sum>max then max:=sum;
       pk(x+b[i],y+c[i]);
        f[x+b[i],y+c[i]]:=-1;
        dec(sum);
       end;
 end;
begin
  readln(n,m);
  fillchar(f,sizeof(f),0);
  for i:=1 to n do
    for j:=1 to m do begin read(a[i,j]);f[i,j]:=-1;end;
   for i:=n downto 1 do
     for j:=1 to m do
      begin
       sum:=1;max:=1;
        pk(i,j);
         if max>maxx then maxx:=max;
     end;
  writeln(maxx);
end.

。。。


by __白衣渡江__ @ 2020-04-13 12:29:41

orz


by 老子是北瓜 @ 2020-04-13 12:31:29

这题可以用贪心


by 老子是北瓜 @ 2020-04-13 12:32:48

pascal是真不知道咋卡常


by 老子是北瓜 @ 2020-04-13 12:34:28

还是说你的代码有问题


by AT·小苏苏 @ 2020-04-13 12:40:15

这明明是道DP


by 老子是北瓜 @ 2020-04-13 12:43:00

@AVOLON_static_cast dp……我懒得想了


by XeCtera @ 2020-04-13 12:43:04

我是菜鸡,我丢人了


by BreakPlus @ 2020-04-13 12:44:17

@永houhaoyan 下载一下数据测一遍最后一个点是不是不仅TLE了还WA了,如果只是TLE那么剪枝+开O2吧


by XeCtera @ 2020-04-13 12:44:52

@永houhaoyan 数组第一维0..100吧


by 永hhyhhyhhy乐 @ 2020-04-13 12:46:39

数据下载不了。。。 数组第一维0..100时还是一样的


| 下一页