1 条题解

  • 1
    @ 2021-8-7 20:49:57

    C++ :

    #include <iostream>
    #include <cmath>
    #include<queue>
    #include <stack>
    #include <stdio.h>
    #include<cstring>
    #include <algorithm>
    #include<cstdlib>
    #include<vector>
    #include<queue>
    const int inf=0x3f3f3f3f;
    using namespace std;
    typedef unsigned long long ll;
    typedef pair<int,int> pp;
    const int N=2010;
    int m,n,a[N],b[N],c[N];
    void mer()//合并
    {
        priority_queue<pp, vector<pp>, greater<pp> > heap;
        for(int i = 0;i < n; i++)heap.push({a[0] + b[i], 0});
        for(int i = 0;i < n; i++)
        {
            pp t=heap.top();
            heap.pop();
            int s=t.first,p=t.second;
            c[i]=s;
            heap.push({s - a[p] + a[p+1], p+1});
        }
        for(int i = 0; i < n; i++) a[i]=c[i];
    }
    int main()
    {
        int T;
        cin>>T;
        while(T--)
        {
            scanf("%d%d",&m,&n);
            for(int i=0;i<n;i++) scanf("%d",&a[i]);
            sort(a,a+n);
            for(int i = 0; i < m-1; i++)
            {
                for(int j = 0; j < n; j++)
                scanf("%d",&b[j]);
                mer();
            }
            for(int i = 0; i < n; i++)
                printf("%d " ,a[i]);
            cout<<endl;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    57
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    42
    已通过
    37
    上传者