題意:
給m行,每行n個數,從每行取一個數計算和,求前n小的和。
分析:
優先隊列的運用,主要是make_heap,pop_heap,push_heap三個STL函數的用法。
代碼:
//poj 2442 //sep9 #include#include using namespace std; const int maxN=2048; int a[maxN],b[maxN],sum[maxN]; int main() { int cases; scanf("%d",&cases); while(cases--){ int i,j,k,m,n; scanf("%d%d",&m,&n); for(i=0;i =sum[0]) break; pop_heap(sum,sum+n); sum[n-1]=x; push_heap(sum,sum+n); } } memcpy(a,sum,n*sizeof(a[0])); } sort(a,a+n); for(i=0;i