PAT (Advanced Level) Practice - 1057 Stack(30 分)
发布日期:2021-06-30 23:43:19 浏览次数:3 分类:技术文章

本文共 854 字,大约阅读时间需要 2 分钟。

题目链接:

 

题目大意:略。

 

解题思路:multiset 技巧分为两个set,一个从小到大,一个从大到小,来控制平衡求第几大K数。

 

AC 代码

#include
#include
#define mem(a,b) memset(a,b,sizeof a)#define ssclr(ss) ss.clear(), ss.str("")#define INF 0x3f3f3f3f#define MOD 1000000007using namespace std;typedef long long ll;stack
sk;multiset
stmax; // 0->1multiset
> stmin; // 1->0int mid;void keep(){ int len1=stmin.size(), len2=stmax.size(); if(len1
=2) // 2 2,5 3 { stmax.insert(*stmin.begin()); stmin.erase(stmin.begin()); } mid=*stmin.begin();}int main(){ int n,val,id; char op[15]; scanf("%d",&n); for(int i=0;i
*stmin.begin()) stmax.erase(stmax.find(tp)); else stmin.erase(stmin.find(tp)); if(sk.size()!=0) keep(); } } else if(op[1]=='e') { if(sk.size()==0) puts("Invalid"); else printf("%d\n",mid); } } return 0;}

 

转载地址:https://lux-sun.blog.csdn.net/article/details/82113651 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:PAT (Advanced Level) Practice - 1087 All Roads Lead to Rome(30 分)
下一篇:PAT (Advanced Level) Practice - 1053 Path of Equal Weight(30 分)

发表评论

最新留言

不错!
[***.144.177.141]2024年05月01日 06时59分29秒