单调栈板子
stack<int> st; //此处一般需要给数组最后添加结束标志符,具体下面例题会有详细讲解 for (遍历这个数组) { if (栈空 || 栈顶元素大于等于当前比较元素) { 入栈; } else { while (栈不为空 && 栈顶元素小于当前元素) { 栈顶元素出栈; 更新结果; } 当前数据入栈; } }
或者
stack<LL>st; for(LL j=1;j<p;j++) { if(st.empty()) { l[j]=0; st.push(j); } else//维护栈中数据单调递减 { while(!st.empty()&&b[st.top()]<b[j]) st.pop(); if(st.empty()) l[j]=0; else l[j]=st.top(); st.push(j); } }
当初的梦想实现了吗,事到如今只好放弃吗~