网站公司设计wordpress站点地址无法更改
web/
2025/10/4 5:18:30/
文章来源:
网站公司设计,wordpress站点地址无法更改,外贸网站推广方案,海口网站建设q479185700棒题目描述 给定一个数列#xff0c;初始为空#xff0c;请支持下面三种操作#xff1a; 给定一个整数 x#xff0c;请将 x 加入到数列中。输出数列中最小的数。删除数列中最小的数#xff08;如果有多个数最小#xff0c;只删除 1 个#xff09;。 输入格式 第一行是一个…题目描述 给定一个数列初始为空请支持下面三种操作 给定一个整数 x请将 x 加入到数列中。输出数列中最小的数。删除数列中最小的数如果有多个数最小只删除 1 个。 输入格式 第一行是一个整数表示操作的次数 n。 接下来 n 行每行表示一次操作。每行首先有一个整数 op 表示操作类型。 若 op1则后面有一个整数 x表示要将 x 加入数列。若 op2则表示要求输出数列中的最小数。若 op3则表示删除数列中的最小数。如果有多个数最小只删除 1 个。 输出格式 对于每个操作 2输出一行一个整数表示答案。 输入输出样例
输入 5
1 2
1 5
2
3
2输出 2
5 说明/提示
【数据规模与约定】 对于 30% 的数据保证 n≤15。对于 70% 的数据保证 n≤10^4。对于 100% 的数据保证 1≤n≤10^61≤x23^1op∈{1,2,3}。 AC代码
#includeiostream
#includealgorithmusing namespace std;const int N 1e610;
int h[N],size;void down(int u)
{int t u;if(u*2 size h[u*2] h[t]) t u * 2;if(u*21 size h[u*21] h[t]) t u*21;if(t ! u){swap(h[t],h[u]);down(t);}
}void up(int u)
{while(u/2 h[u/2] h[u]){swap(h[u],h[u/2]);u u/2; }
}int main()
{int n;cin n;while(n--){int op;cin op;if(op 1){int x;cin x;size;h[size] x;up(size); }else if(op 2){printf(%d\n,h[1]);} else{h[1] h[size];size--;down(1);}}return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86612.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!