蓝桥杯备考:数据结构堆之序列合并

这道题我们固定a[1]和b数组的所有数组合,依次插入到堆里面,然后选n次最小的数,每次选出最小的数的时候,把a[i+1]和b数组的该数组合插入堆里面,直到输出n个数,我们程序就结束

cpp 复制代码
#include <iostream>
#include <queue>
using namespace std;
const int N = 1e5+10;
typedef long long ll;
ll a[N],b[N];
struct node{
	ll sum;
	ll i;
	ll j;
	bool operator< (const node& x)const
	{
		return sum >x.sum;
	}
};
priority_queue <node> heap;
int main()
{
	ll n;
	cin >> n;
	for(int i = 1;i<=n;i++)
	{
		cin >> a[i];
	}
	for(int i = 1;i<=n;i++)
	{
		cin >> b[i];
		heap.push({(a[1]+b[i]),1,i});
	}
	for(int c = 1;c<=n;c++)
    {
    	node t = heap.top(); heap.pop();
    	ll i = t.i; ll sum = t.sum; ll j = t.j;
    	cout << sum << " ";
    	heap.push({(a[i+1]+b[j]),i+1,j});
	}
	
	
	
	
	
	
	return 0;
}
相关推荐
opple669 分钟前
力扣-数据结构-二叉树
数据结构·算法·leetcode
时光话1 小时前
Lua 第14部分 数据结构
开发语言·数据结构·lua
Phoebe鑫2 小时前
数据结构每日一题day13(链表)★★★★★
数据结构·链表
Seven972 小时前
缓存穿透的解决方式?—布隆过滤器
java·数据结构·redis
积极向上的向日葵2 小时前
链表的中间节点
数据结构·算法·链表·快慢指针
xin007hoyo9 小时前
算法笔记.染色法判断二分图
数据结构·笔记·算法
wuqingshun31415913 小时前
蓝桥杯 11. 打印大X
数据结构·算法·职场和发展·蓝桥杯·深度优先
wuqingshun31415915 小时前
蓝桥杯 2. 确定字符串是否是另一个的排列
数据结构·c++·算法·职场和发展·蓝桥杯
长沙火山16 小时前
9.ArkUI List的介绍和使用
数据结构·windows·list
AAAA劝导tx17 小时前
List--链表
数据结构·c++·笔记·链表·list