#4~#9WA,求调

P1216 [USACO1.5] [IOI1994]数字三角形 Number Triangles

Sunhaotian2011 @ 2023-08-18 21:25:27

/*

*/
#include<bits/stdc++.h>
#define itn int
#define el endl
using namespace std;
int f[1010][1010];
int main(){
    int n;
    cin>>n;
    int arr[n][n];
    for(int i=1;i<=n;i++){
        for(itn j=1;j<=i;j++){
            cin>>arr[i][j];
        }
    }
    for(int i=1;i<=n;i++){
        for(itn j=1;j<=i;j++){
            f[i][j]=max(f[i-1][j],f[i-1][j-1])+arr[i][j];
        }
    }
    itn maxx=INT_MIN;
//  for(int i=1;i<=n;i++){
//      for(itn j=1;j<=i;j++){
//          cout<<f[i][j]<<" ";
//      }
//      cout<<el;
//  }
    for(itn i=1;i<=n;i++){
        maxx=max(maxx,f[n][i]);
    }
    cout<<maxx;
    return 0;
}

#4测试点十分奇怪,本地可以过,提交过不了。

#4数据: 输入

输入

10
1
1 1
1 1 1
1 1 1 1
1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 99

输出
108

请大佬指教,谢谢!


by Sunhaotian2011 @ 2023-08-18 21:26:37

提交记录


by dongshucheng @ 2023-08-18 22:07:40

@Sunhaotian2011 我认为本题有两种做法: 一、从底部往上面走,可能会比较方便。

二、从上往下走,在你的代码基础上做一下改 动:

1、将数组 arr 开在主函数外面,不然可能会产生未知错误(主要原因)。

2、优化:可以直接在 arr 数组上进行操作,省去 f


by Sunhaotian2011 @ 2023-08-19 18:23:52

@dongshucheng 谢谢,已关


|