wordpress自动创建子站,好用的seo软件,甘肃省城乡与住房建设厅网站首页,注册公司有什么好处目录 堆【模板】小根堆
题目描述1
输入1
输出1
样例输入 1
样例输出 1
提示1
代码1 堆【模板】大根堆
题目描述2
输入
输出
样例输入2
样例输出2
提示2
代码2 堆【模板】小根堆
题目描述1
初始小根堆为空#xff0c;我们需要支持以下3种操作#xff1a; 操作…目录 堆【模板】小根堆
题目描述1
输入1
输出1
样例输入 1
样例输出 1
提示1
代码1 堆【模板】大根堆
题目描述2
输入
输出
样例输入2
样例输出2
提示2
代码2 堆【模板】小根堆
题目描述1
初始小根堆为空我们需要支持以下3种操作 操作1 1 x 表示将x插入到堆中(1e-6x1e6) 操作2 2 输出该小根堆内的最小数若小根堆为空则输出empty 操作3 3 删除该小根堆内的最小数若小根堆为空则输出err
输入1
第一行包含一个整数N表示操作的个数 接下来N行每行包含1个或2个正整数表示三种操作格式如下 操作1 1 x 操作2 2 操作3 3
输出1
包含若干行根据题意输出。
样例输入 1
12
1 5
2
3
3
2
1 -5
1 7
1 -9
2
2
1 -17
2样例输出 1
5
err
empty
-9
-9
-17提示1
数据规模 对于30%的数据N20 对于70%的数据N10000 对于100%的数据N10^6 样例说明 12 1 5 2 输出堆顶5 3 删除5 3 删堆顶时堆为空输出err 2 取堆顶时堆为空输出empty 1 -5 1 7 1 -9 2 输出堆顶-9 2 输出堆顶-9 1 -17 2 输出堆顶-17
代码1
#include bits/stdc.h #define ll long long using namespace std; ll n,i,fl,x,t,a[1000100]; void up(int t){ int fa; while(t!1){ fat/2; if(a[fa]a[t]) swap(a[t],a[fa]),tfa; else break; } } void down(int tt){ int son; while(tt*2t){ sontt*2; if(son1ta[son1]a[son])son; if(a[son]a[tt]) swap(a[son],a[tt]),ttson; else break; } }
main(){ cinn; for(i1;in;i){ cinfl; if(fl1){ cinx; a[t]x; up(t); } else if(fl2){ if(t0)coutempty\n; else couta[1]\n; } else{ if(t0)couterr\n; else a[1]a[t],t--,down(1); } } }
#include bits/stdc.h
#define ll long long
using namespace std;
ll n,i,fl,x,t,a[1000100];
void up(int t){int fa;while(t!1){fat/2;if(a[fa]a[t])swap(a[t],a[fa]),tfa;else break;}
}
void down(int tt){int son;while(tt*2t){sontt*2;if(son1ta[son1]a[son])son;if(a[son]a[tt])swap(a[son],a[tt]),ttson;else break;}
}main(){cinn;for(i1;in;i){cinfl;if(fl1){cinx;a[t]x;up(t);}else if(fl2){if(t0)coutempty\n;else couta[1]\n;}else{if(t0)couterr\n;else a[1]a[t],t--,down(1);}}
} 堆【模板】大根堆
题目描述2
初始大根堆为空我们需要支持以下3种操作 操作1 1 x 表示将x插入到堆中(1e-6x1e6) 操作2 2 输出该大根堆内的最大数若大根堆为空则输出empty 操作3 3 删除该大根堆内的最大数若大根堆为空则输出err
输入
第一行包含一个整数N表示操作的个数 接下来N行每行包含1个或2个正整数表示三种操作格式如下 操作1 1 x 操作2 2 操作3 3
输出
包含若干行根据题意输出。
样例输入2
12
1 5
2
3
3
2
1 -5
1 7
1 -9
2
2
1 217
2
样例输出2
5
err
empty
7
7
217
提示2
数据规模 对于30%的数据N20 对于70%的数据N10000 对于100%的数据N10^6 样例说明 12 1 5 2 输出堆顶5 3 删除5 3 删堆顶时堆为空输出err 2 取堆顶时堆为空输出empty 1 -5 1 7 1 -9 2 输出堆顶7 2 输出堆顶7 1 217 2 输出堆顶217
代码2
#include bits/stdc.h #define ll long long using namespace std; ll i,j,a[600100],n,q,x,t,a1,T,a2,a3,fl; void up(int t){ int fa; while(t!1){ fat/2; if(a[fa]a[t]) swap(a[fa],a[t]),tfa; else break; } } void down(int fa){ int son; while(fa*2t){ sonfa*2; if(son1ta[son1]a[son])son; if(a[fa]a[son])swap(a[fa],a[son]),fason; else break; } } main(){ cinn; for(i1;in;i){ cinfl; if(fl1){ cinx; a[t]x; up(t); } else if(fl2){ if(t0)coutempty\n; else couta[1]\n; } else{ if(t0)couterr\n; else a[1]a[t],t--,down(1); } } }
#include bits/stdc.h
#define ll long long
using namespace std;
ll i,j,a[600100],n,q,x,t,a1,T,a2,a3,fl;
void up(int t){int fa;while(t!1){fat/2;if(a[fa]a[t])swap(a[fa],a[t]),tfa;else break;}
}
void down(int fa){int son;while(fa*2t){sonfa*2;if(son1ta[son1]a[son])son;if(a[fa]a[son])swap(a[fa],a[son]),fason;else break;}
}
main(){cinn;for(i1;in;i){cinfl;if(fl1){cinx;a[t]x;up(t);}else if(fl2){if(t0)coutempty\n;else couta[1]\n;}else{if(t0)couterr\n;else a[1]a[t],t--,down(1);}}
}