N个最小和
程序员文章站
2022-06-04 17:29:24
...
思路:每次添加一个值到优先队列中。
#include <iostream>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <cstdio>
#include <set>
#include <sstream>
#include<string>
#include<queue>
#include<stack>
#include<map>
#define MAXX 100005
#define SIS std::ios::sync_with_stdio(false)
#define ll long long
#define INF 0x3f3f3f3f
//#include<bits/stdc++.h>
using namespace std;
//const int MAX =100;
const double PI = 3.14159265359;
//const int esp = 1e9 + 7;
int n, m;
struct node
{
int x, y, num;
bool operator <(const node other)const
{
return num > other.num;
}
};
int a[100000], b[100000];
priority_queue<node> pq;
int main()
{
SIS;
cin >> n;
node tm;
for (int i = 0; i < n; i++)
cin >> a[i];
for (int i = 0; i < n; i++)
cin >> b[i];
sort(a, a + n);
sort(b, b + n);
for (int i = 0; i < n; i++)
{
tm.x = 0;
tm.y = i;
tm.num = a[0] + b[i];
pq.push(tm);
}
for (int i = 0; i < n; i++)
{
tm = pq.top();
pq.pop();
if (i != n - 1)
{
cout << tm.num << ' ';
}
else
cout << tm.num << endl;
if (tm.x != n - 1)
{
tm.num = a[++tm.x] + b[tm.y];
pq.push(tm);
}
}
return 0;
}
推荐阅读
-
JavaScript学习笔记:取数组中最大值和最小值_html/css_WEB-ITnose
-
程序员 - PHP时间问题,2014-1-21 和 2013-5-13 请用最有效率的方法计算出两个时间相差的年份和月份??
-
JFinal和JBoot创建一个定时任务
-
php中两个**可以直接求一个数的n次方 为什么还要有pow()函数
-
已知n个数的和是32898,求每一个加数
-
关于10个优化代码的CSS和JavaScript工具的详细介绍
-
Android 入门第十讲02-广播(广播概述,使用方法(系统广播,自定义广播,两个activity之间的交互和传值),EventBus使用方法,数据传递,线程切换,Android的系统广播大全)
-
一个简单的动态加载js和css的jquery代码_jquery
-
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结_javascript技巧
-
JavaScript:new 一个函数和直接调用函数的异同