P党二维前缀和+二维DP 蜜汁88分,最后一个点没过

P1736 创意吃鱼法

说真的这提数据可能有点问题 3 3 1 0 0 0 1 0 1 0 0 这组数据的正确答案应该是2,但我的程序出来是3。DEBUG之后的代码: ```pascal Uses Math ; Var F : Array [0..2500,0..2500] of Record left,right : Longint End ; Var Q, E : Array [0..2500,0..2500] of Longint ; Var n, m, i, j : Longint ; Ans : Longint = 0 ; Function slip(i,j,a : Longint):Longint; Begin if a>0 then Begin inc(j,a-1); a := -a End; slip := Q[i,j] - Q[i+a,j] - Q[i,j+a] + Q[i+a,j+a] ; End; Begin Readln(n, m); FillChar(Q,sizeof(Q),0); FillChar(E,sizeof(E),0); FillChar(F,sizeof(F),0); For i := 1 to n do For j := 1 to m do Begin Read(E[i,j]); F[i,j].left := E[i,j] ; F[i,j].right := E[i,j] ; Q[i,j] := Q[i-1,j] + Q[i,j-1] + E[i,j] - Q[i-1,j-1] ; End; For i := 1 to n do For j := 1 to m do if E[i,j]=1 then Begin if E[i-1,j-1]=1 then F[i,j].left := ifthen(slip(i,j,-F[i-1,j-1].left -1)=F[i-1,j-1].left +1,F[i-1,j-1].left +1,F[i,j].left ); if E[i-1,j+1]=1 then F[i,j].right := ifthen(slip(i,j, F[i-1,j+1].right+1)=F[i-1,j+1].right+1,F[i-1,j+1].right+1,F[i,j].right); Ans := max(max(F[i,j].left,F[i,j].right),Ans); End; writeln(Ans); End. ``` ~~这个代码仍然过不了最后一个点~~ ## 但是第四个点也爆了!!! 墙裂要求检查一下此题数据准确性 @[chen_zhe](/space/show?uid=8457)
by Cubeneo @ 2019-08-09 14:05:27


不要怀疑数据的正确性
by CreeperLordVader @ 2019-08-09 14:07:01


@[Cubeneo](/space/show?uid=82358) 很明显就是2没有错啊,你手动验证数据的答案,就会发现你的程序很明显错了
by NKL丶 @ 2019-08-09 14:10:16


还有,不要怀疑一道有4.6k人通过的题目
by NKL丶 @ 2019-08-09 14:11:11


不要怀疑一道有4.6k人通过的题目
by Doveqise @ 2019-08-09 14:12:04


Umm
by Cubeneo @ 2019-08-09 14:14:35


不要怀疑一道有 # $\color{red}4.6k$ 人通过的题目
by 东方澂 @ 2019-08-09 14:16:33


我第二次的代码对于我的Hack数据没有问题 @[Doveqise](/space/show?uid=127191) @[NKL丶炎](/space/show?uid=112661) @[CreeperLordVader](/space/show?uid=68207) ~~虽然搞不懂为什么出错,但此贴重点好像是求帮忙DEBUG吧。。。~~ 总之我这辣鸡代码能砍下11个点就说明数据有点水
by Cubeneo @ 2019-08-09 14:19:13


不要怀疑一道有4.6k人通过的题目
by 安全修改 @ 2019-08-24 13:30:39


|