G题两个例子都过了,但是提交后case通过率为0,求大佬帮忙

#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
vector<vector<int>> f;
vector<vector<int>> w;
int n,m,maxn = - 300;
int main(){
    cin >> n >> m;
    w.resize(n + 2);
    f.resize(n + 2);
    for(int i = 0;i <= n;i ++){
        w[i].resize(m + 2,0);
        f[i].resize(m + 2,0);
    }
    for(int i = 1;i <= n;i ++)
        for(int j = 1;j <= m;j ++){
            int a;
            cin >> a;
            w[i][j] = a;
        }
    for(int i = 1;i <= n;i ++)
        for(int j = 1;j <= m;j ++){
            f[i][j] = f[i - 1][j] + f[i][j - 1] + w[i][j] - f[i - 1][j - 1];
            maxn = max(maxn,f[i][j]);
        }
    cout << maxn;
    return 0;
}

全部评论
前缀和数组f记录的是从左上角(1,1)到(i,j)的和,答案的矩形可能不是从左上角开始的(比如左上角为负),例子里面是碰巧
1 回复
分享
发布于 2021-04-13 13:20
这几天出题人会放题解上来~
点赞 回复
分享
发布于 2021-04-12 16:16
联想
校招火热招聘中
官网直投

相关推荐

点赞 评论 收藏
转发
头像
不愿透露姓名的神秘牛友
04-17 14:34
点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务