标签:计算 pop names || mes 元素 pac 算法 删掉
#include <bits/stdc++.h> using namespace std; //不是递增的话就删掉,然后重新计算一次 int getMaxArea(vector<int> &vec) { stack<int> s; int max_area = 0; int i=0; int tp,area_with_top; while(i < vec.size()){ if(s.empty() || vec[s.top()] <= vec[i])//栈是空的时候,或者栈顶元素小于当前vector所出的元素 s.push(i++); else { tp = s.top(); s.pop(); area_with_top = vec[tp]*(s.empty()? i:i-s.top()-1); max_area = max(max_area,area_with_top); } } while(!s.empty()) { tp = s.top(); s.pop(); area_with_top = vec[tp] * (s.empty() ? i : i-s.top()-1); max_area = max(max_area, area_with_top); } return max_area; } int main(){ int N; vector<int> vec; cin>>N; for(int i=0;i<N;++i) { int val; cin>>val; vec.emplace_back(val); } cout << getMaxArea(vec); return 0; }
标签:计算 pop names || mes 元素 pac 算法 删掉
原文地址:https://www.cnblogs.com/zmachine/p/13721609.html