poj 2442Sequence 優先隊列的運用,poj2442

來源:互聯網
上載者:User

poj 2442Sequence 優先隊列的運用,poj2442

題意:

給m行,每行n個數,從每行取一個數計算和,求前n小的和。

分析:

       優先隊列的運用,主要是make_heap,pop_heap,push_heap三個STL函數的用法。

代碼:

//poj 2442 //sep9#include <iostream>#include <algorithm>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<n;++i)scanf("%d",&a[i]);for(i=1;i<m;++i){sort(a,a+n);for(j=0;j<n;++j)scanf("%d",&b[j]);sort(b,b+n);for(j=0;j<n;++j)sum[j]=a[j]+b[0];make_heap(sum,sum+n);for(j=1;j<n;++j){for(k=0;k<n;++k){int x=b[j]+a[k];if(x>=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<n;++i)printf("%d ",a[i]);printf("\n");}return 0;} 


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.