标签:erase logs bsp 元素 stack 入栈 pac har include
x入栈的同时 也加入集合b,
当a.top()!=num 直接reorder复杂度为n^2logn 改为清空栈,当栈为空时 表示栈已经有序,删除元素直接从集合中删除.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=2e6+20;
int n,p[N];
char s[20];
stack<int> a;
set<int> b;
int main()
{
while(cin>>n)
{
int num=1,ans=0;
int x;
int top=0;
n=2*n;
for(int i=1;i<=n;i++)
{
scanf("%s",s);
if(s[0]==‘a‘)
{
scanf("%d",&x);
a.push(x),b.insert(x);
}
else
{
if(!a.empty())
{
if(a.top()!=num)//reorder ?úb?D??3ynum
{
ans++;//cout<<num<<endl;
while(!a.empty())
a.pop();
}
else
a.pop();
}
//è????a???ò±íê? ?3Dò′óμ?D?1ì?¨?éò??ú,?ˉo?b?Dé?3y
b.erase(num);
num++;
}
}
cout<<ans<<endl;
}
return 0;
}
标签:erase logs bsp 元素 stack 入栈 pac har include
原文地址:http://www.cnblogs.com/HIKARI1149/p/7079644.html