说真的这提数据可能有点问题
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