CF 821C 模拟

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;
}

  

时间: 2024-10-01 03:55:16

CF 821C 模拟的相关文章

CF 729D 模拟,思维

CF 729 D. Sea Battle 题意:n个单位长的海域,有a只船,船长为b.已经开了k枪没有射中,求最少再开几枪可射中一只船. 题解:转变一下思维,求开了k枪后可放入多少只船.要求再开几枪可射中一只船,只要 -a+1即可. #include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define FF(i,a,b) for (

CF 725C 模拟 725D

CodeForces 725C 题意:长27的字符串,26个英文字母至少出现了一次.这个字符串是由两行13列的字符相邻行走得来,求这个两行13列的字符. 题解:思路很好想,找其中两个一样的字符,间距d,平分到两行.  注:以后写草稿要写清楚点..被自己坑死了.. #include<bits/stdc++.h> using namespace std; #pragma comment(linker, "/STACK:102400000,102400000") #define

CF 378(2) C D 模拟

CF 378(2)   好坑,有时间再做一遍 CodeForces 733C 题意:n只怪物,每只重ai,一开始有给定序列a[].问最后是否能变到x只特定序列b[],变化只能是相邻的大吃小. 题解:坑死人的题,,但不要怕去写这种题,在草稿纸上写好思路,一定要动手写.  思路:先把a[]根据b[]进行分段,再对每一段进行分析.细节太多,不自己动手写一遍根本体会不到.. #include<bits/stdc++.h> using namespace std; #pragma comment(lin

CF #392(2) C 暴力模拟

CF #392(2)  C. Unfair Poll 题意:n行m列人,老师点k次名.点名次序,每一行都是从1到m,但行是按1,2....(n-1),n,(n-1),(n-2)...1,2,3....(n-1),n.....求点完k次名后被点的最多的次数和最少的次数,以及给定的(x,y)被点次数. 总结:有点麻烦,但还是很好找规律,只是fst了,有时间再写一遍...还是太菜了,连着三场CF都是fst #include<bits/stdc++.h> using namespace std; #p

CF 395(2) D.矩形上色,模拟

CF 395(2)  D. Timofey and rectangles 题意:二维平面上n个矩形上色,矩形边长都是奇数,且不会重合.用4种颜色上色,要使相邻的矩形是不同的颜色,求每个矩形的颜色. 题解:因为都是矩形,3种颜色就可以做到相邻矩形是不同颜色.这里因为矩形边长都是奇数,稍微脑补一下,可以将矩形以左下角点分为4种,奇数行奇数列,奇数行偶数列,偶数行奇数列,偶数行偶数列. #include<bits/stdc++.h> using namespace std; #pragma comm

【打CF,学算法——三星级】Codeforces 704A Thor (模拟)

[CF简介] 题目链接:CF 704A 题面: A. Thor time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Thor is getting used to the Earth. As a gift Loki gave him a smartphone. There are n applications on this ph

CF 2A Winner(STL+模拟)

题目链接:http://codeforces.com/contest/2/problem/A 题目: The winner of the card game popular in Berland "Berlogging" is determined according to the following rules. If at the end of the game there is only one player with the maximum number of points,

CF 815 A. Karen and Game(暴力,模拟)

题目链接:http://codeforces.com/problemset/problem/815/A 题目: On the way to school, Karen became fixated on the puzzle game on her phone! The game is played as follows. In each level, you have a grid with n rows and m columns. Each cell originally contains

Codeforces 821C Okabe and Boxes(模拟)

题目大意:给你编号为1-n的箱子,放的顺序不定,有n条add指令将箱子放入栈中,有n条remove指令将箱子移除栈,移出去的顺序是从1-n的,至少需要对箱子重新排序几次. 解题思路:可以通过把栈清空表示已经排过序了,如果下一次remove时栈为空,说明已经排序过且没有新的箱子放入,因为题目确保在需要删除之前添加每个箱子,所以肯定栈顶的箱子是我们所需要的.如果栈不为空则判断栈顶箱子序号是否是我们需要的,不是则重新排序,用清空栈来表示. 这里用数字模拟了栈. 1 #include<iostream>