单调栈板子

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);
            }
        }
当初的梦想实现了吗,事到如今只好放弃吗~
原文地址:https://www.cnblogs.com/caijiaming/p/12005280.html