4395. 最大子矩阵(acwing)
根据题意很容易想到二分
但是问题来了 二分面积但是长宽还是需要O(n)来确定 完全承受不了
观察这个题目相较于一般的最大子矩阵问题 在于两个数列
#include<bits/stdc++.h>
using namespace std;
#define lowbit(x) x&(-x)
#define ll long long
const int maxn=2e3+5;
ll a[maxn],b[maxn],lena[maxn],lenb[maxn];
ll x;
int n,m,ans;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i],a[i]+=a[i-1];
for(int i=1;i<=m;i++)cin>>b[i],b[i]+=b[i-1];
for(int i=1;i<=max(n,m);i++)lena[i]=lenb[i]=2e9+9;
cin>>x;
for(int len=1;len<=n;len++)
for(int l=1;l+len-1<=n;l++)
lena[len]=min(lena[len],a[l+len-1]-a[l-1]);
for(int len=1;len<=m;len++)
for(int l=1;l+len-1<=m;l++)
lenb[len]=min(lenb[len],b[l+len-1]-b[l-1]);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
if(lena[i]*lenb[j]<=x)ans=max(ans,i*j);
cout<<ans<<endl;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】