!!!!!!!!!!!!!!!!!!!

样例还是觉得有问题。。
是从左下角出发啊。。。不是说可以走右上方吗。。
5
1
2 3
4 5 6
10 1 7 8
1 1 4 5 6
这样看起来底层第二个1的右上方是第4层的1,但是如果数字对齐就不是这样的了。。。
5
1
2 3
4 5 6
10 1 7 8
1 1 4 5 6
正如上图。。。左下角1到第四层1->4->2->1还是9啊。。

1 条评论

  • @ 2016-07-05 21:19:26

    何况我也发现很多code都没有打右上的情况。。比如:

    var f,a:array[0..1001,0..1001] of longint;
    i,j,n:longint;
    flag:boolean;
    procedure compare(x,y:longint);
    begin
    if f[x,y]+a[i,j]<f[i,j] then
    begin
    flag:=false;
    f[i,j]:=f[x,y]+a[i,j];
    end;
    end;
    begin
    readln(n);
    for i:=1 to n do
    begin
    for j:=1 to i do read(a[i,j]);
    readln;
    end;
    fillchar(f,sizeof(f),60);
    f[1,1]:=a[1,1];
    for i:=2 to n do
    repeat
    flag:=true;
    f[i,0]:=f[i,i];
    f[i,i+1]:=f[i,1];
    for j:=1 to i do
    begin
    compare(i-1,j-1); //左上
    compare(i-1,j); //正上方
    compare(i,j-1); //左
    compare(i,j+1); //右,就是没有右上。。如果有右上就应该在加上compare(i-1,j+1);然而加上了却只A了两个点。。
    compare(i-1,j+1);
    end;
    until flag;
    writeln(f[n,1]);
    end.

  • 1

信息

ID
1006
难度
6
分类
动态规划 点击显示
标签
递交数
8987
已通过
2075
通过率
23%
被复制
26
上传者