1 条题解
-
1赵青海 (huhe) LV 7 SU @ 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
- 标签
- 递交数
- 44
- 已通过
- 39
- 上传者