首页 > TAG信息列表 > P1801

洛谷 P1801 黑匣子_NOI导刊2010提高(06)对顶堆

题目描述 Black Box是一种原始的数据库。它可以储存一个整数数组,还有一个特别的变量i。最开始的时候Black Box是空的.而i等于0。这个Black Box要处理一串命令。 命令只有两种: ADD(x):把x元素放进BlackBox; GET:i加1,然后输出Blackhox中第i小的数。 记住:第i小的数,就是Black Box里的数

洛谷 P1801

题目链接: P1801 黑匣子 题目大意 题目描述的已经够清楚了, 我就不说了自己读吧 solution 哇, 查询区间第 \(k\) 大诶, 平衡树~ 写平衡树的话, 觉得有点大材小用了, 那我们用什么做呢? 堆+贪心! 那我们怎么贪呢? 我们的贪心思路是什么呢? 我们维护两个堆, 一个大根堆维护小于第 \(

[洛谷] P1801 黑匣子

复习主席树(以前怎么写splay啊) 空间*32 #include<bits/stdc++.h> using namespace std; inline int rd(){ int ret=0,f=1;char c; while(c=getchar(),!isdigit(c))f=c=='-'?-1:1; while(isdigit(c))ret=ret*10+c-'0',c=getchar(); return ret*f; } #defin

P1801 黑匣子_NOI导刊2010提高(06)

代码存档 #include <bits/stdc++.h> using namespace std; multiset<int> s ; int a[201000] , b[201000] ; int main() { multiset<int>::iterator d ; int m , n ; scanf("%d%d" , &m , &n) ; for(int i = 1 ; i <=

【题解】BZOJ P1801 dp

一个需要考虑比较多状态的dp   通过象棋规则可知,一列最多有两个炮 因为如果有三个炮他们就可以互相伤害了   设f[i][j][k]为前i行,有j列有一个棋子,有k列有两个棋子 容斥一下可得没有棋子的列数为m-j-k 我们枚举方棋子的状态 <1>只放一个棋子 (1) 把这个棋子放在一列没有棋子的列

P1801 黑匣子_NOI导刊2010提高(06) 堆

   题目描述 Black Box是一种原始的数据库。它可以储存一个整数数组,还有一个特别的变量i。最开始的时候Black Box是空的.而i等于0。这个Black Box要处理一串命令。 命令只有两种: ADD(x):把x元素放进BlackBox; GET:i加1,然后输出Blackhox中第i小的数。 记住:第i小的数,就是Black Box里