#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[2010][2010];
ll b[2010][2010];
ll h[2222];
ll que[22222];
int main(){
ll t;
scanf("%d",&t);
while(t--){
ll n,m;
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
scanf("%d",&a[i][j]);
}
}
for(int i=1; i<=n; i++){
for(int j=1;j<=m;j++){
if(a[i][j]>=a[i-1][j]){
b[i][j]=1;
}
else{
b[i][j]=0;
}
}
}
for(int i=1;i<=m;i++){
h[i]=0;
}
ll ans=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(b[i][j]==0)
h[j]=1;
else
h[j]++;
}
ll tot=0;
h[m+1]=0;
for(int j=1;j<=m+1;j++){
while(tot&&h[que[tot]]>h[j]){
ans=max(ans,(j-que[tot-1]-1)*h[que[tot]]);
tot--;
}
que[++tot]=j;
}
}
printf("%lld\n",ans);
}
}
hdu6957dp
最新推荐文章于 2021-09-16 15:57:58 发布