程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> uva 11997 STL 優先隊列priority_queue +簡單數學

uva 11997 STL 優先隊列priority_queue +簡單數學

編輯:C++入門知識

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&category=497&problem=3148


暴力k的k次方的算法當然是肯定 超時

稍動點腦子,先算出最小的(兩排中最小的相加肯定是),維護一個優先隊列,邊pop,邊push可能的最小的,然後最先出來的肯定是最小的k個

順便練習下怎麼用STL的優先隊列

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//優先隊列析構如果花時間的話,那麼你就在一個函數裡建隊列,
//每次調用結束後自動析構,只不過把值存到一個全局變量或者
//傳遞過來的數組裡
//uva 11997 優先隊列練習
//2014.4.16
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

const int MAXN = 768;
int k;
int a[MAXN][MAXN];

/*注意這個Elem怎麼寫的,c++我還是太弱菜了*/
struct Elem{
    int s,b;
    Elem(int s,int b):s(s),b(b){}  /*注意寫法*/
    bool operator < (const Elem &t)const{
        return s>t.s;
    }
};

void Add(int j)
{
    priority_queueq;
    int c[MAXN];

    for(int i=0;i

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved