求助,怎么只有80分
查看原帖
求助,怎么只有80分
1545581
hinwow楼主2024/11/29 17:22

第一组数据能通过的,但第二组就不行了,不知道怎么回事

#include<bits/stdc++.h>
using namespace std;
int grid[1001][1001],dp[1001][1001];
int main(){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;++i)
        for(int j=1;j<=m;++j)
            cin>>grid[i][j];
    dp[1][1]=grid[1][1];
    for(int i=2;i<=n;++i)dp[i][1]=dp[i-1][1]+grid[i][1];
    for(int j=2;j<=m;++j)
    {
        int t=INT_MIN;
        for(int i=1;i<=n;++i)t=max(t,dp[i][j-1])+grid[i][j],dp[i][j]=max(t,dp[i][j]);
        t=INT_MIN;
        for(int i=n;i>0;--i)t=max(t,dp[i][j-1])+grid[i][j],dp[i][j]=max(t,dp[i][j]);
    }
    cout<<dp[n][m];
    return 0;
}
2024/11/29 17:22
加载中...