Codeforces Round #420 C

Okabe and Boxes

题意:有2个操作,add x表示往栈里加入一个数x,remove表示从栈里拿出一个数,若要使得出栈的顺序为递增的,那么至少要对栈里面的元素进行多少次重新排序

思路:stack模拟栈,优先队列模拟出栈,每次记录当前最顶上的元素top,用来和当前出栈的数比较,如果不相等,则进行排序,并标记f表示已经是排好序的位置,若相等,则出栈,然后更新top,注意更新top的时候是取优先队列里的还是stack里的数,若当前的位置大于f,则取栈里的元素更新top,否则取优先队列里的数

AC代码:

#include "iostream"
#include "string.h"
#include "stack"
#include "queue"
#include "string"
#include "vector"
#include "set"
#include "map"
#include "algorithm"
#include "stdio.h"
#include "math.h"
#define ll long long
#define bug(x) cout<<x<<" "<<"UUUUU"<<endl;
#define mem(a) memset(a,0,sizeof(a))
using namespace std;
const int N=1e5+100;
priority_queue<int,vector<int>,greater<int> > Q;
int tot[3*N],t,p=1,ans,f,top;
char s[10];
int main(){
    int n,x;
    cin>>n;
    for(int i=1; i<=2*n; ++i){
        cin>>s;
        if(s[0]==‘a‘){
            cin>>x;
            Q.push(x);
            tot[++t]=x;
            top=x;
        }
        else{ //cout<<t<<" "<<f<<endl;cout<<top<<" "<<Q.top()<<endl;
            Q.pop();
            if(top==p){
                p++;t--;
                if(t>f){
                    top=tot[t];
                }
                else{
                    top=Q.top();
                    if(top==p) f--;
                }
            }
            else{  //cout<<"uuuu"<<endl;
                ans++;
                p++;
                top=Q.top();
                f=--t;
            }
        }
    }
    cout<<ans;
    return 0;
}
/*
3
add 1
remove
add 2
add 3
remove
remove
7
add 3
add 2
add 1
remove
add 4
remove
remove
remove
add 6
add 7
add 5
remove
remove
remove
6
add 3
add 4
add 5
add 1
add 6
remove
add 2
remove
remove
remove
remove
remove
7
add 4
add 6
add 1
add 5
add 7
remove
add 2
remove
add 3
remove
remove
remove
remove
remove
*/
时间: 2024-08-15 00:18:11

Codeforces Round #420 C的相关文章

Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo(矩阵)

题目链接:Codeforces Round #420 (Div. 2) E. Okabe and El Psy Kongroo 题意: 在一个二维方格子里有n条线段,有三种走法 (x?+?1,?y?+?1), (x?+?1,?y), or (x?+?1,?y?-?1). 现在要求每次都要在线段下行走,问你有多少种走法, 可以从(0,0)到(k,0). 题解: 考虑dp f[i][j]=f[i-1][j]+f[i-1][j+1]+f[i-1][j-1]. 由于k比较大c比较小,可以考虑用矩阵来优化

Codeforces Round #420 (Div. 2) A-E

本来打算划划水洗洗睡了,突然听到这次的主人公是冈部伦太郎 石头门(<steins;gate>)主题的比赛,岂有不打之理! 石头门真的很棒啊!人设也好剧情也赞曲子也特别好听. 推荐http://music.163.com/#/m/song?id=26259014&userid=115264555 (强行跑题) Okabe and Future Gadget Laboratory O(n^4)暴力妥妥的 1 #include<iostream> 2 #include<al

Codeforces Round #420 (Div. 2)

/****************************************************************************************************************** 因为发现不敲题会变蠢...所以没事还是做两道题吧.... 很久没做过题然后发现C和E全都是因为没用LL给卡住了......  我真的是太蠢了 ***************************************************************

Codeforces Round #420 A题翻译(17.6.25)

A.Okabe and Future Gadget Laboratory Okabe和未来科技实验室 时间限制:两秒 空间限制:256M 输入:标准输入 输出:标准输出 Okabe要改进他的实验室.实验室用一个n*n的正方形网格表示(n为正整数).他认为,一个“好实验室”的网格内每一个不等于1的数字都可以用同一行和同一列的某个数字之和表示.换句话说,对于任意x,y(1 ≤ x, y ≤ n 且 ax, y ≠ 1,),存在两个数s和t,使得ax, y = ax, s + at, y,其中ai, 

Codeforces Round #420 D题翻译(17.6.25)

D. Okabe and City Okabe和苟城 时间限制:4秒 空间限制:256M 输入:标准输入 输出:标准输出 Okabe喜欢沿着有路灯的小路穿行城市.但是如果沿途的路灯没有点亮,在一片漆黑中,他就会被他那些跑得超级快的小伙伴抛弃. Okabe居住的苟城可以用一个二维网格表示.行从上到下编为1~N,列从左到右编为1~N.有K盏路灯是亮着的.初始时左上角的路灯已点亮. Okabe开始了他的旅程.他从左上角出发,目的地是右下角..当然,Okabe只会经过点亮的灯,而且只能向相邻的上.下.左

Codeforces Round #420 E

Okabe and El Psy Kongroo 题意:有n条平行x轴的线段,每条线段的起点为(ai,ci),终点为(bi,ci),且满足ai=b(i-1),从起点出发,每次可以往3个方向走,分别为 (x?+?1,?y?+?1), (x?+?1,?y), or (x?+?1,?y?-?1),且走的过程必须满足0>=y>=ci,求走到(k,0)有多少种走法 思路:dp+矩阵快速幂, dp[i][0]=dp[i-1][0]+dp[i-1][1] ........... dp[i][j]=dp[i-

Codeforces Round #420 A

Okabe and Future Gadget Laboratory 题意:给一个矩阵,如果矩阵中任意一个不为1的数都满足 存在一对 s t 使得 ais+atj=aij 思路:xjb暴力写 AC代码: #include "iostream" #include "string.h" #include "stack" #include "queue" #include "string" #include &q

Codeforces Round #420 B

Okabe and Banana Trees 题意:给一个y=b-x/m 在这条直线与x y正半轴围成的三角形里,找一个矩形,使得矩形内所有的点(包括矩形边缘)的权值和最大,每个点的权值为横坐标与纵坐标之和 思路:暴力枚举x= 0--m*b, 计算答案,取最大值,注意爆int,计算y值的时候去尾取整(强制类型转换即可) AC代码: #include "iostream" #include "string.h" #include "stack" #

Codeforces Round #279 (Div. 2) ABCD

Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name     A Team Olympiad standard input/output 1 s, 256 MB  x2377 B Queue standard input/output 2 s, 256 MB  x1250 C Hacking Cypher standard input/output 1 s, 256 MB  x740 D Chocolate standard input/