- 直方图中最大的矩形
发个题解呗~
- 2025-5-11 15:19:10 @
发个题解呗~
1 条评论
-
-
#include #include #include #include using namespace std; int n,p; int a[100010]; int s[100010],w[100010]; long long ans;
int main() { while(cin>>n&&n) { ans=0; p=0; for(int i=1;i<=n;i++) scanf("%d",&a[i]); a[n+1]=0; for(int i=1;i<=n+1;i++) { if(a[i]>s[p]) s[++p]=a[i],w[p]=1; else{ int width=0; while(s[p]>a[i]) { width+=w[p]; ans=max(ans,(long long)width*s[p]); p--; } s[++p]=a[i],w[p]=width+1; } } cout<<ans<<endl; } }
- 1
信息
- ID
- 1585
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 40
- 已通过
- 13
- 上传者