#include#include#include#include#include#include#include#includeusing namespace std;
class project
project(const project& p)//push進堆時用到了拷貝建構函式,雖然不寫也無所謂
project& operator = (const project& p)
return *this;
}};struct co//以cost為基準建立小根堆
};struct _pr//以cost為基準建立大根堆
};int main()
; vectorprofits = ;
int k = 2, m = 3;
vectorpro;
for (int i = 0; i < costs.size(); i++)
priority_queue, co> small;
priority_queue, _pr> big;//貪心策略,可以隨時隨地push並得到最大
//值for (int i = 0; i < pro.size(); i++)
while (k>0)
m += big.top().profit;
big.pop();
k--;
} cout << m;
}
左神演算法學習日記 堆(一)
一直覺得赫夫曼樹沒什麼diao用,沒想到這道題可以用赫夫曼樹,而且用小根堆可以實現赫夫曼樹,學到好多。題目二一塊金條切成兩半,是需要花費和長度數值一樣的銅板的。比如長度為20的金條,不管切成長度多大的兩半,都要花費20個銅板。一群人想整分整塊金條,怎麼分最省銅板?例如,給定陣列,代表一共三個人,整塊...
左神演算法學習日記 樹dp
樹dp問題只需要考慮每個結點的所有孩子的情況就可以解決 class node node class treeinf void creat node node if r 獲得子樹中結點最多的搜尋二叉樹的結點個數 treeinf getmaxnode node node treeinf leftinf ...
左神演算法學習日記 單鏈表(一)
最近在找實習工作,做個左神演算法的學習日記,方便以後鄙視自己。題一 判斷乙個鍊錶是否為回文結構 題目 給定乙個鍊錶的頭節點head,請判斷該鍊錶是否為回文結構。例如 1 2 1,返回true。1 2 2 1,返回true。15 6 15,返回true。1 2 3,返回false。高階 如果鍊錶長度為...