uva 11997——K Smallest Sums

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


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


code:

#include 
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_queueq;
    for (int i=0;i


你可能感兴趣的:(===ACM训练题库===,UVA)