码迷,mamicode.com
首页 > 其他好文 > 详细

CF 821C 模拟

时间:2017-06-26 12:48:28      阅读:169      评论:0      收藏:0      [点我收藏+]

标签: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;
}

  

CF 821C 模拟

标签:erase   logs   bsp   元素   stack   入栈   pac   har   include   

原文地址:http://www.cnblogs.com/HIKARI1149/p/7079644.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!