关于 #3 测试数据
查看原帖
关于 #3 测试数据
1049033
luogu_00楼主2024/11/28 21:49
#include<bits/stdc++.h>
using namespace std;
int a[101][101];
int main()
{
    int m,n,ans=0;
    cin>>m>>n;
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=n;i++)
    {
        ans+=a[1][i]+a[m][i];
    }
    for(int i=2;i<m;i++)
    {
        ans+=a[i][1]+a[i][n];
    }
    cout<<ans;
    return 0;
}

这段代码只能得 8080 分,但是样例通过了,仔细看一下代码,你或许觉得这段代码应该能 AC,#3 测试点是 WA 的,或许就是 #3 是有问题的测试数据。

无论如何,千万要注意第 1919 行代码:

for(int i=2;i<m;i++)

这段代码并没有错,因为如果是

for(int i=1;i<=m;i++)

的话,那么 a[1][1]a[1][n] 会被重复计算。

m=3m=3n=3n=3 为例,那么 1515 ~ 2222 行代码将会计入 a[1][1]a[1][2]a[1][3]a[2][1]a[2][3]a[3][1]a[3][2] 以及 a[3][3],这些都是矩阵的边缘元素。

如果发现这段代码的问题或者 #3 测试数据的问题,欢迎在下面回复!

2024/11/28 21:49
加载中...