2 条题解

  • 3
    @ 2023-8-5 9:41:26
    #include<iostream>
    using namespace std;
    const int N = 210;
    long long a[N][N], sum[N][N], ans = -2e18;
    int main(){
        freopen("ring.in","r",stdin);
        freopen("ring.out","w",stdout);
        int n, m;
        cin >> n >> m;
        for (int i = 1; i <= n; i ++){
            for(int j = 1; j <= m; j ++){
                cin >> a[i][j];
                a[n+i][j] = a[i][m+j] = a[n+i][m+j] = a[i][j];
                ans = max(ans, a[i][j]);
            }
        }   
        for (int i = 1; i <= 2*n; i++){
            for (int j = 1; j <= 2*m; j ++){
                sum[i][j] = sum[i-1][j] + a[i][j];
            }
        }
        if(ans <= 0){
            cout << ans << endl;
        }else{
            ans = -0x3f3f3f3f;
            for(int i = 1; i <= n; i ++){
                for (int j = i; j <= 2*n && j-i+1 <= n; j ++){
                    for (int u = 1; u <= m; u ++){
                        long long sumt = 0;
                        for(int k = u; k <= 2*m && k - u + 1 <= m; k ++){
                            sumt += sum[j][k] - sum[i-1][k];
    
                            if(sumt < 0) sumt = 0;
                            ans = max(ans, sumt);
                        }
                    }
    
                }
            }
            cout << ans << endl;
        }
        return 0;
    }
    
    • 1
      @ 2026-8-7 11:10:18
      #include<bits/stdc++.h>using namespace std;long long a[405][405],sum[405];int main(){freopen("ring.in","r",stdin);freopen("ring.out","w",stdout);int n,m,len,c=0;cin>>n>>m;for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){cin>>a[i][j];a[i][j+m]=a[i+n][j]=a[i+n][j+m]=a[i][j];}}for(int i=1;i<=n*2;i++){for(int j=1;j<=m*2;j++){sum[j]+=a[(i+len-2)%n+1][j];}}long long ans=-1e18;for(int r=1;r<=n*2;r++){for(int i=1;i<=m*2;i++) sum[i]=0;for (int len =1;len<=n;len++){for(int j=1;j<=m;j++) sum[j]+=a[(r + len - 2) % n + 1][j];long long cur=sum[1],mx=sum[1];for(int j=2;j<=m;j++){cur=max(sum[j],cur+sum[j]);mx=max(mx,cur);}ans=max(ans,mx);}}cout<<ans<<endl;return 0;}
      
      • 1

      信息

      ID
      488
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      (无)
      递交数
      120
      已通过
      24
      上传者