代码求调
查看原帖
代码求调
686297
LegendaryGrandmaster楼主2023/1/23 02:18
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
LL f[100001],s[301][301];
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	memset(f,0,sizeof(f));
	memset(s,0,sizeof(s));
    LL n,m,ans=-1e9;
    cin>>n>>m;
    f[0]=0;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++){
            LL t;
            cin>>t;
            if(t==0)t=-1e9;
            s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+t;
        }
    for(int i1=1;i1<=n;i1++)
        for(int i2=i1;i2<=n;i2++)
            for(int j=1;j<=m;j++){
                LL t=s[i2][j]-s[i1-1][j]-s[i2][j-1]+s[i1-1][j-1];
                f[j]=t+max(0ll,f[j-1]);
                ans=max(ans,f[j]);
            }
    cout<<ans;
}

测了好几次,倒是可以对所有数据,但是不是在一个代码上(

上面给的是83分代码,WA最后一点,改最小值可以对最后一点但是前面有些会错。

改格子是0加个否则是只对最后一个点。

2023/1/23 02:18
加载中...