题意:给定k个含k个数的数列,然后每次从每个序列中取出一个相加,然后问所有的数中前k小的。

思路:将每个表排序后然后插入优先队列中,依次是a[0]+b[0],a[0]+b[1],然后不断合并到一张表中,最后打印出来即可。

code:

#include <bits/stdc++.h>
using namespace std;
struct node
{int s,b;node (int s,int b):s(s),b(b){}bool operator < (const node& a) const {return s>a.s;}
};void merge(int *A,int *B,int *C,int n){priority_queue<node>q;for (int i=0;i<n;i++)q.push(node(A[i]+B[0],0));for (int i=0;i<n;i++){node t=q.top();q.pop();C[i]=t.s;int b=t.b;if (b<n-1) q.push(node(t.s-B[b]+B[b+1],b+1));}
}
const int N=756;
int v[N],p[N];
int main()
{int n;while (~scanf("%d",&n)){for (int i=0;i<n;i++){for (int j=0;j<n;j++)scanf("%d",v+j);sort (v,v+n);memcpy(p,v,sizeof(v));if (i!=0) merge(p,v,p,n);}printf("%d",p[0]);for (int i=1;i<n;i++)printf(" %d",p[i]);puts("");}
}

uva 11997——K Smallest Sums相关推荐

  1. uva 11997 K Smallest Sums 优先队列处理多路归并问题

    题意:K个数组每组K个值,每次从一组中选一个,共K^k种,问前K个小的. 思路:优先队列处理多路归并,每个状态含有K个元素.详见刘汝佳算法指南. 1 #include<iostream> ...

  2. [UVA 11997] K Smallest Sums

    图片加载可能有点慢,请跳过题面先看题解,谢谢 我们先考虑两个序列的情况(以下这一段蒯自 刘汝佳训练指南): 这个问题可以转换成一个多路归并问题,有这样一个含有 \(n^2\) 个元素的表: \(A[1 ...

  3. K Smallest Sums

    K Smallest Sums 题意:有k个数组,每个有k个元素,在每个数组里面取一个数加起来,问最小的k个数. 思路:多路归并,优先队列维护. #include<bits/stdc++.h&g ...

  4. 373. Find K Pairs with Smallest Sums (java,优先队列)

    题目: You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. Def ...

  5. [Swift]LeetCode373. 查找和最小的K对数字 | Find K Pairs with Smallest Sums

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  6. 373. Find K Pairs with Smallest Sums 找出求和和最小的k组数

    [抄题]: You are given two integer arrays nums1 and nums2 sorted in ascending order and an integer k. D ...

  7. LeetCode Find K Pairs with Smallest Sums(大根堆、小根堆)

    问题:给出两个有序数组nums1,nums2,要求从两个数组中各取一个数,组成一对数据,输出和最小的k对 思路:方法1使用大根堆,当堆中元素个数小于k时,直接入堆.否则比较当前数据对与堆顶的元素,如果 ...

  8. leetcode 373. Find K Pairs with Smallest Sums | 373. 查找和最小的K对数字(小根堆)

    题目 https://leetcode.com/problems/find-k-pairs-with-smallest-sums/ 题解 本来以为是个双指针+贪心,但是后来发现如果用双指针的话,指针并 ...

  9. Uva 11997 多路归并

    题目链接:https://uva.onlinejudge.org/external/119/11997.pdf 题意: k*k的矩阵,从每一行中选一个元素加起来,可以得到 kk个和,求前 k 个最小值 ...

最新文章

  1. 如何在 Python 中创建一个简单的神经网络
  2. mysql数据库出现幻读,MySQL 幻读怎样处理?_数据库
  3. mysql - 一键安装方式- 课堂版
  4. Linux 发行版本简介 (zz)
  5. Linq 入门系列 [Take,Skip,TakeWhile,SkipWhile]篇
  6. 一文快速了解 Java 9 - 16 新特性,网友:卷不动了?
  7. 打开SQlite数据库
  8. dtft性质及证明_信号处理基础-- DTFT、DFT和STFT基本概念
  9. 解密中国互联网企业创始人,程序员是如何打下半壁江山的?
  10. EMI辐射发射超标案例
  11. qq农场 html5,登陆qq农场 QQ浏览器怎么登陆QQ农场
  12. 共享打印机提示服务器没有运行,提示无法共享打印机: “无法显示该属性,后台打印程序服务未运行”...
  13. @Deprecated
  14. 【后端】短信验证码4位或6位
  15. 凹凸贴图、法线贴图、置换贴图
  16. 极速office(Word)怎么删除页眉
  17. sourceinsight 的好处_代码阅读神器——Sourceinsight
  18. 【webpack5配置favicon.ico】
  19. U盘文件丢失求恢复教程
  20. 有关网络通信的基本概念

热门文章

  1. 搭建本地wordpress
  2. C# 判断txt文件编码格式
  3. 【第七次JAVA课,java语法基础】课件总结
  4. Linux虚机安装配置Tomcat
  5. Day 9 函数的初识1
  6. 【看番杂感】Clannad系列观后感(剧透慎入)
  7. 揭开Python科学计算的面纱
  8. $.ajax所犯的错误。success后面不执行
  9. 遥感影像滤波处理软件 — timesat3.2
  10. 转:链表相交问题 详解