样例过,全WA
  • 板块P1565 牛宫
  • 楼主StarsTwinkle
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/1/23 18:58
  • 上次更新2024/1/23 21:16:27
查看原帖
样例过,全WA
1267405
StarsTwinkle楼主2024/1/23 18:58
#include<bits/stdc++.h>
using namespace std;
const int N=209;
struct node{
   int val,pos;
}A[N];
int up[N][N],n,m,mn,ans=0;
bool cmp(node a,node b){
    if(a.val==b.val) return a.pos<b.pos;
    else return a.val<b.val;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
         for(int j=1;j<=m;j++){
             cin>>up[i][j];
             up[i][j]+=up[i-1][j];
         }
    }
    for(int u=1;u<=n;u++){
        for(int d=u;d<=n;d++){
            A[0].val=0;
            for(int k=1;k<=m;k++){
                A[k].val=up[d][k]-up[u-1][k];
                A[k].val+=A[k-1].val;
                A[k].pos=k;
            }
            sort(A+0,A+m+1,cmp);
            mn=A[0].pos;
            for(int i=1;i<=m;i++){
                if(mn<A[i].pos){
                    if((d-u+1)*(A[i].pos-mn)>ans)ans=(d-u+1)*(A[i].pos-mn);
                }
                else mn=A[i].pos;
            }
        }
    }
    cout<<ans;
}
2024/1/23 18:58
加载中...