洛谷P1801 黑匣子_NOI导刊2010提高(06)
2017-11-02 21:41
302 查看
https://www.luogu.org/problemnew/show/1801
这道题目显然就用打2个堆去维护一下就好了;
这里有fb大佬给出一种更简单的方法
mulitset
我们知道set里面是游有序的,所以我们插入一个数的时候,我们看看当前的第k小比这个数大还是小?
小的话没关系,不影响,大的话那么吧我们的迭代器指针前移
这道题目显然就用打2个堆去维护一下就好了;
这里有fb大佬给出一种更简单的方法
mulitset
我们知道set里面是游有序的,所以我们插入一个数的时候,我们看看当前的第k小比这个数大还是小?
小的话没关系,不影响,大的话那么吧我们的迭代器指针前移
#include<bits/stdc++.h> using namespace std; const int N=200005; multiset<int>q; int a ,s ; int n,m; int main() { cin>>n>>m; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=m;i++)cin>>s[i]; int k=1;q.insert(a[1]); multiset<int>::iterator it=q.begin(); if(s[k]==1)printf("%d\n",a[1]),k++; for(int i=2;i<=n;i++){ q.insert(a[i]);if(a[i]<*it)it--; while(s[k]==i){if(k!=1)it++;printf("%d\n",*it),k++;} } return 0; }
相关文章推荐
- 洛谷P1801 黑匣子_NOI导刊2010提高(06)
- 洛谷P1801 黑匣子_NOI导刊2010提高(06)
- 黑匣子_NOI导刊2010提高(06) 洛谷p1801
- 堆or优先队列(洛谷1801 黑匣子_NOI导刊2010提高(06))
- 【P1806】黑匣子_NOI导刊2010提高(06) splay
- 刷题记录-luoguP1801 黑匣子_NOI导刊2010提高(06)
- 黑匣子_NOI导刊2010提高(06)(对顶堆)
- NOI导刊2010提高(06) 黑匣子
- 洛谷1801 黑匣子_NOI导刊2010提高(06) 【好题】
- 洛谷 P1801 黑匣子_NOI导刊2010提高(06)
- |洛谷|NOI导刊|堆|黑匣子_NOI导刊2010提高(06)
- P1801 黑匣子_NOI导刊2010提高(06)
- 洛谷 P1801 黑匣子_NOI导刊2010提高(06)
- 洛谷 P1801 [NOI导刊2010提高(06)] 黑匣子
- 洛谷 P1801 黑匣子_NOI导刊2010提高(06)
- 堆/平衡树——Luogu1801 黑匣子_NOI导刊2010提高(06)
- P1801 黑匣子_NOI导刊2010提高(06)
- 洛谷P1801 黑匣子_NOI导刊2010提高(06)
- 洛谷 P1801 黑匣子_NOI导刊2010提高(06)
- LUOGUP1801 黑匣子_NOI导刊2010提高(06)