1. 程式人生 > >POJ 3253(貪心 + 優先佇列)

POJ 3253(貪心 + 優先佇列)

《挑戰程式設計競賽》,初級篇–樹

// 貪心 + 優先佇列(大根堆,小根堆)
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
#define maxn 20020

typedef long long ll;
int a[maxn];

int main()
{
    int n;
    while(scanf("%d",&n) != EOF)
    {
        for(int i = 0; i < n; i++)
            scanf
("%d",&a[i]); priority_queue<int, vector<int>, greater<int> > que; for(int i = 0; i < n; i++) que.push(a[i]); ll ans = 0; while(que.size() > 1) { int l1 = que.top(); que.pop(); int l2 = que.top(); que.pop(); ans += l1+l2; que.push(l1+l2); } if
(n == 1) ans = a[0]; printf("%lld\n",ans); } return 0; } /* 測試資料: 3 8 5 8 */

相關推薦

POJ 3253貪心 + 優先佇列

《挑戰程式設計競賽》,初級篇–樹 // 貪心 + 優先佇列(大根堆,小根堆) #include <iostream> #include <cstdio> #include <queue> using namespace

poj 3614 抹防晒霜的牛貪心 + 優先佇列

題意: 有c只牛,l個瓶子。 每隻牛有一個防晒區間,minSpf 和 maxSpf,在這個區間內才能保持良好的防晒姿勢。 現在每個瓶子裡的防晒值是spf,然後每個瓶子能搞cover只牛。 問最多能夠讓幾頭牛保持良好的防晒姿勢。 解析: 莫名其妙就搞了一個早上。 另一道dp

D. Fedor and coupons貪心+優先佇列

Note In the first example if we take the first two coupons then all the products with ids in range [40, 70] can be bought with both coupons. There are 

bzoj1029: [JSOI2007]建築搶修貪心 + 優先佇列

原題連結 題目描述:小剛在玩JSOI提供的一個稱之為“建築搶修”的電腦遊戲:經過了一場激烈的戰鬥,T部落消滅了所有z部落的入侵者。但是T部落的基地裡已經有N個建築設施受到了嚴重的損傷,如果不盡快修復的話,這些建築設施將會完全毀壞。現在的情況是:T部落基地裡只有一個修理工人,雖然他能瞬間到達任何一個建築,但是

Sunscreen 貪心+優先佇列

To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must cover her hide with sunscreen when they're at the beach. C

HDU 5360 Hiking 貪心+優先佇列

There are n soda conveniently labeled by 1,2,…,n. beta, their best friends, wants to invite some soda to go hiking. The i-th soda will go hiking if the

合併果子貪心+優先佇列

現在有n堆果子,第i堆有ai個果子。現在要把這些果子合併成一堆,每次合併的代價是兩堆果子的總果子數。求合併所有果子的最小代價。 Input 第一行包含一個整數T(T<=50),表示資料組數。 每組資料第一行包含一個整數n(2<=n<=1000),表示果子的堆數。 第二行包含n個正整數ai(

Hello 2018 D. Too Easy Problems貪心+優先佇列

You are preparing for an exam on scheduling theory. The exam will last for exactly T milliseconds and will consist of n problems. You can either solve p

POJ1456Supermarket貪心+優先佇列

Supermarket Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9103 Accepted: 3891 Description A supermarket has a set Prod

poj 1456 Supermarket貪心+並查集,貪心+優先佇列

Supermarket Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7677 Accepted: 3252 Description A supermarket has a set Prod o

POJ】2786-Keep the Customer Satisfied貪心 + 優先佇列,姿勢不對就要跪

按照截止日期排序,之後一個一個遍歷,記錄當前時間,如果當前時間大於截止時間,那麼從選過的任務裡刪除一個花費最大的任務 優先佇列維護 14038525 2786 Accepted 11168K 1016MS C++ 905B 2015-04-02 12:22:16 #inc

【51Nod - 1163】最高的獎勵 貪心+優先佇列 或 妙用並查集

題幹: 有N個任務,每個任務有一個最晚結束時間以及一個對應的獎勵。在結束時間之前完成該任務,就可以獲得對應的獎勵。完成每一個任務所需的時間都是1個單位時間。有時候完成所有任務是不可能的,因為時間上可能會有衝突,這需要你來取捨。求能夠獲得的最高獎勵。 Input 第1行:一個數N,表示

【Codeforces-140C】New Year Snowmen貪心+優先佇列、二分

As meticulous Gerald sets the table and caring Alexander sends the postcards, Sergey makes snowmen. Each showman should consist of three snowballs:

HDU 6438 Buy and Resell貪心+優先佇列+set

Description 有nnn個城市,第iii個城市商品價格為aia_iai​,從111城市出發依次經過這nnn個城市到達nnn城市,在每個城市可以把手頭商品出售也可以至多買一個商品,問最大收益以及在

1163】最高的獎勵 貪心+優先佇列 或 妙用並查集

題幹: 有N個任務,每個任務有一個最晚結束時間以及一個對應的獎勵。在結束時間之前完成該任務,就可以獲得對應的獎勵。完成每一個任務所需的時間都是1個單位時間。有時候完成所有任務是不可能的,因為時間上可能

釣魚貪心+優先佇列+過載運算子

釣魚 題目描述: 話說發源於小朋友精心設計的遊戲被電腦組的童鞋們藐殺之後非常不爽,為了表示安慰和鼓勵,VIP999決定請他吃一次“年年大豐收”,為了表示誠意,他還決定親自去釣魚,但是,因為還要準備2

poj 2387Dijkstra優先佇列優化

Description Bessie is out in the field and wants to get back to the barn to get as much sleep as possible before Farmer John wakes

貪心】CODE[VS] 1063 NOIP2004普及組-合併果子 刷題記錄模擬+優先佇列

日常水題 貪心策略:每次找代價最小的兩對合並,用小根堆來維護,每次合併之後將當前合併結果重新推入佇列,直到合併完成(n-1次) 程式碼如下 #include <cstdio>

CCF-CSP201609-4 交通規劃Dijkstra+優先佇列

題目連結 問題描述 試題編號: 201609-4 試題名稱: 交通規劃 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述   G國國王來中國參觀後,被中國的高速鐵路深深的震撼,決定為自己

霍夫曼編碼C++ 優先佇列

霍夫曼編碼 一般採用字首編碼 -- -- 對字符集進行編碼時,要求字符集中任一字元的編碼都不是其它字元的編碼的字首,這種編碼稱為字首(編)碼。 演算法思想: 構造哈夫曼樹非常簡單,將所有的節點放到一個佇列中,用一個節點替換兩個頻率最低的節點,新節點的頻率就是這兩個節點的頻率之和。這