疑惑

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

mattinas @ 2021-01-19 08:56:23

每次提交相同的代码都是不同的分数?就是不能A。下载了错误数据点本地运行都是对的。


by mattinas @ 2021-01-19 08:59:11

#include<bits/stdc++.h>
using namespace std;
int r;
int f[1001][1001];
int a[1001][1001];
int main()
{
    scanf("%d",&r);
    for(int i=1;i<=r;i++)
    {
        for(int j=1;j<=i;j++)
        {
            scanf("%d",&a[i][j]);
            f[i][j]=max(f[i-1][j-1],f[i-1][j])+a[i][j];
        }
    }
    int ans;
    for(int i=1;i<=r;i++)
    {
        ans=max(f[r][i],ans);
    }
    printf("%d",ans);
    return 0;
} 

by Ryan_Yu @ 2021-01-19 09:05:54

@mattinas ans要开在main()函数外

AC代码如下:

#include<bits/stdc++.h>
using namespace std;
int r,f[1001][1001],a[1001][1001],ans,i,j;
int main()
{
    scanf("%d",&r);
    for(i=1;i<=r;i++)
    {
        for(j=1;j<=i;j++)
        {
            scanf("%d",&a[i][j]);
            f[i][j]=max(f[i-1][j-1],f[i-1][j])+a[i][j];
        }
    }

    for(i=1;i<=r;i++)
    {
        ans=max(f[r][i],ans);
    }
    printf("%d",ans);
    return 0;
} 

by mattinas @ 2021-01-19 09:09:30

@Ryan▄︻═┳ 哦哦,谢谢


by Ryan_Yu @ 2021-01-19 09:10:16

不用谢。


by schwarzt_gyt @ 2021-03-26 14:28:26

@Ryan▄︻═┳ 为什么ans开外面就不行,我也是。。。。把ans开main里面就WA8个


by Ryan_Yu @ 2021-03-26 17:06:15

@acmgyt ans开main外面自动赋0,所以很多人都开在外面,并且开在main函数外面可当全局变量使用。(刚放学,回复晚了)


by Ryan_Yu @ 2021-03-26 17:07:42

@acmgyt

#include<bits/stdc++.h>
using namespace std;
int r;
int f[1001][1001];
int a[1001][1001];
int main()
{
    scanf("%d",&r);
    for(int i=1;i<=r;i++)
    {
        for(int j=1;j<=i;j++)
        {
            scanf("%d",&a[i][j]);
            f[i][j]=max(f[i-1][j-1],f[i-1][j])+a[i][j];
        }
    }
    int ans=0;
    for(int i=1;i<=r;i++)
    {
        ans=max(f[r][i],ans);
    }
    printf("%d",ans);
    return 0;
} 

这样也可以,只不过ans要赋0


by Ryan_Yu @ 2021-03-26 17:13:05

@acmgyt 不赋0,ans就是随机值


by schwarzt_gyt @ 2021-03-26 17:13:07

@Ryan▄︻═┳ 哦哦谢谢


by Ryan_Yu @ 2021-03-26 17:14:52

@acmgyt 不用谢


|