pat1057 stack 分块的做法
来源:互联网 发布:仙界网络直播间sodu 编辑:程序博客网 时间:2024/05/16 20:39
#include<algorithm>#include<cstdio>#include<iostream>#include<string>#include<cstring>#include<vector>#include<set>#include<map>#include<queue>#include<stack>#define ll long longusing namespace std;int table[100005],bucket[1005];stack<int>st;int n,m;int find(){int ret = 0,id = st.size()%2?(st.size()+1)/2:st.size()/2;for(int i = 0;;i++){ret+=bucket[i];if(ret>=id){ret-=bucket[i];for(int j = i*m+1;;j++){ret+=table[j];if(ret>=id)return j;}}}}int main(){int i,j,x;char s[15];while(scanf("%d",&n)!=EOF){m = sqrt(n)+1;for(i = 0;i<n;i++){scanf("%s",s);if(s[1] == 'o'){if(st.size() == 0)printf("Invalid\n");else {printf("%d\n",st.top());bucket[(st.top()-1)/m]--;table[st.top()]--; st.pop();}}else if(s[1] == 'u'){scanf("%d",&x);bucket[(x-1)/m]++;table[x]++;st.push(x);}else {if(st.size() == 0)printf("Invalid\n");else printf("%d\n",find());}}}return 0;}
0 0
- pat1057 stack 分块的做法
- PAT1057.Stack (30)
- PAT1057
- HDU 5919 分块做法
- [2009国家集训队]小Z的袜子(hose) 分块做法
- BZOJ 3343 教主的魔法 暴力分块做法
- PAT1057. 数零壹
- 【学术篇】洛谷1471 方差 分块做法
- leetcode 456. 132 Pattern 一个很棒的利用stack的做法
- BZOJ 2724 [Violet 6]蒲公英分块做法题解
- PAT1057. 数零壹(20)
- 用python实现PAT1057数零壹
- 分块的基本应用
- Python的矩阵分块
- 分块-教主的魔法
- 分块 公主的朋友
- 小鱼的做法
- 网线的基本做法
- hrbust 1186 简单DP
- Android原理揭秘系列之View、ViewGroup
- SQL DELETE FROM的用法
- Inno Setup 如何让生成的setup.exe文件有管理员权限
- Android KitCat 4.4.2 ADB 官方所支持的所有Services格式翻译
- pat1057 stack 分块的做法
- BZOJ 1018 SHOI2008 堵塞的交通traffic 线段树
- SQL UPDATE的用法
- erlang系列文章阅读指引
- zoj 1276 Optimal Array Multiplication Sequence
- Android/NDK环境下FFmpeg及AAC,MP3,X264的编译
- 加油,2015
- javascript之键盘与鼠标事件
- Xcode安装离线文档方法