首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

poj2442 Sequence-堆温习

2012-10-15 
poj2442Sequence----堆复习#include cstdio#include cstring#include string#include vector#incl

poj2442 Sequence----堆复习
#include <cstdio>#include <cstring>#include <string>#include <vector>#include <queue>#include <algorithm>#include <iostream>using namespace std;int main(){ int t; int n,m; int num1[2010]; int num2[2010]; priority_queue<int,deque<int>,less<int> > big; scanf("%d",&t); while(t--) { scanf("%d%d",&m,&n); for(int i=0;i<n;i++) scanf("%d",&num1[i]); sort(num1,num1+n); for(int i=1;i<m;i++) { for(int j=0;j<n;j++) { scanf("%d",&num2[j]); big.push(num1[0]+num2[j]); } sort(num2,num2+n); for(int k=1;k<n;k++) for(int l=0;l<n;l++) { if(num1[k]+num2[l]>big.top()) break; big.pop(); big.push(num1[k]+num2[l]); } for(int k=0;k<n;k++) { num1[n-k-1]=big.top(); big.pop(); } } printf("%d",num1[0]); for(int i=1;i<n;i++) printf(" %d",num1[i]); puts(""); }}


 

 

热点排行