zoukankan      html  css  js  c++  java
  • poj 2442

    多路归并+优先队列的使用

    #include <iostream>
    #include <cstdio>
    #include <queue>
    #include <algorithm>
    using namespace std;
    const int maxn=2000+10;
    int a[110][maxn],b[maxn],n,m;
    struct item
    {
        int s,b;
        item(int s,int b):s(s),b(b) { }
    };
    bool operator < (item a,item b)
    {
        return a.s>b.s;
    }
    void solve(int * t1,int *t2,int *t3)
    {
        priority_queue<item> q;
        int i;
        for(i=0;i<n;i++) q.push(item(t2[0]+t1[i],0));
        for(i=0;i<n;i++)
        {
            item tem=q.top();
            q.pop();
            t3[i]=tem.s;
            q.push(item(tem.s+t2[tem.b+1]-t2[tem.b],tem.b+1));
        }
    }
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            scanf("%d%d",&m,&n);
            int i,j;
            for(i=0;i<m;i++)
            {
                for(j=0;j<n;j++) scanf("%d",&a[i][j]);
                sort(a[i],a[i]+n);
            }
            for(i=1;i<m;i++)
                solve(a[0],a[i],a[0]);
            printf("%d",a[0][0]);
            for(i=1;i<n;i++) printf(" %d",a[0][i]);
            printf("\n");
        }
        return 0;
    }
    


  • 相关阅读:
    mybatis入门
    windows环境下搭建RocketMQ
    主键-雪花算法
    Springboot杂七杂八
    springboot整合webSocket的使用
    sss
    sss
    sss
    sss
    sss
  • 原文地址:https://www.cnblogs.com/lj030/p/3065556.html
Copyright © 2011-2022 走看看