首页 > 代码库 > poj 2442 Sequence
poj 2442 Sequence
Sequence
Time Limit: 6000MS | Memory Limit: 65536K | |
Total Submissions: 7019 | Accepted: 2266 |
题目大意:给出n个序列每一个序列有每一个元素在每一个序列里取出一个元素求和 输出前n个最小和
优先队列
#include<cstring> #include<cstdio> #include<cstring> #include<queue> #include<iostream> #include<algorithm> using namespace std; int main() { int cas,n,m,i,j; int a[2005],b[2005]; priority_queue<int,deque<int>,less<int> >big; scanf("%d",&cas); while(cas--) { scanf("%d%d",&m,&n); for(i=0;i<n;i++) scanf("%d",&a[i]); sort(a,a+n); for(i=1;i<m;i++) { for(j=0;j<n;j++) { scanf("%d",&b[j]); big.push(a[0]+b[j]); } sort(b,b+n); for(int k=1;k<n;k++) for(int l=0;l<n;l++) { if(a[k]+b[l]>big.top()) break; big.pop(); big.push(a[k]+b[l]); } for(int k=0;k<n;k++) { a[n-k-1]=big.top(); big.pop(); } } printf("%d",a[0]); for(i=1;i<n;i++) printf(" %d",a[i]); printf("\n"); } return 0; }
poj 2442 Sequence
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。