
数据结构
小李@飞刀
高一信息学奥赛
QQ:2243037767
展开
-
有序表的最小和问题
有两个有序数列(不下降)a:2 5 9 8 6b:1 2 3 4 5求a,b 中两数相加最小和先确定一个开始b[1]与a中所有元素相加,入堆每次弹出堆顶,将其序中下一个b元素相加入堆O(nlogn)#include<bits/stdc++.h>using namespace std;#define maxn 400000 struct num{ int data,...原创 2019-08-23 20:56:53 · 492 阅读 · 0 评论 -
对顶堆
神奇的对顶堆动态维护第K小O(logn)单次维护第k小如图元素上大下小,保证大根堆中有k-1个元素若大根堆元素个数=k,将大根堆堆顶弹入小根堆每次取小根堆的堆顶即为答案。例题:洛谷P1801黑匣子题目链接代码:#include<bits/stdc++.h>using namespace std;#define ll long longll a[200005...原创 2019-08-21 11:12:48 · 314 阅读 · 0 评论 -
最小生成树
#include<bits/stdc++.h>using namespace std;struct kkk{ int x,y,z;}g[10005];int n,m,p,f[1001],num,ans;int cmp(kkk a,kkk b){ return a.z<b.z;}int findd(int x){ if(x!=f[x])f[x]=findd(...原创 2019-09-14 21:31:17 · 210 阅读 · 0 评论