P1090 合併果子
#include<bits/stdc++.h> using namespace std; int main() { freopen("in.txt","r",stdin); int n;cin>>n; int temp; priority_queue<int,vector<int>,greater<int> > ppp; for(int i=0;i<n;i++){ cin>>temp;ppp.push(temp); } int total=0;int ans=0; while(ppp.size()!=1){ int l1=ppp.top(); ppp.pop(); int l2=ppp.top(); ppp.pop(); ans=l1+l2; ppp.push(ans); total+=ans; } cout<<total; return 0; }
priority_queue的使用~
相關推薦
洛谷 P1090 合併果子 STL優先佇列
優先佇列 #include<iostream> #include<queue> using namespace std; int n,a[10005]; long long sum; priority_queue<int,vector<int>,greater
P1090 合併果子
#include<bits/stdc++.h> using namespace std; int main() { freopen("in.txt","r",stdin); int n;cin>>n; int temp; priority_q
P1090 合併果子——————multiset
P1090 合併果子 題目描述 在一個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。 每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過 n-1n−1 次合併之後, 就
P1090合併果子
題目傳送https://www.luogu.org/problem/show?pid=1090 這道水題有很多種做法是顯然的,,,,在這裡的就介紹一下我的幾種做法吧 法一: 先排序,取兩個最小的相加加入陣列,再排序。。。 (這種做法誰都想得到吧,,,然後顯然超時) 法二:
題解 luogu P1090 【合併果子】
下面是插排的做法 總之就是每次將最小的合併,但是有些網上的變態資料卡插排,所以我們接下來寫一個優先佇列 #include<bits/stdc++.h> using namespace std; int a[10050],n; int main() { long long
洛谷 P1090 【合併果子】題解
題目傳送門 各位又是priority queue又是heap的,做了個弱點的,送上來 策略很簡單,每次拿兩個最小的和並,這個用堆來做簡直就是送分題 但是我那個時候還不會堆,所以這裡採用的方法是 1、走來做一次快排,使得這些堆升序 2、合併最前面的兩個(也就是兩個
NOIP2004合併果子(提高組T2)————優先佇列STL,貪心
題解:本題主要考查優先佇列STL,貪心。若要體力最小,就要將最小的果合併,合併後的果子再入隊。 程式碼如下: #include<iostream> #include<queue> using namespace std; priority_queue<in
樹-堆結構練習——合併果子之哈夫曼樹
#include <stdio.h> #include <stdlib.h> void quick(int a[],int l,int r) { int i,j,x; i=l; j=r; x=a[l];
程式設計基礎20 堆 合併果子
題目描述 在一個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。 每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n-1次合併之後,就只剩下一堆了。多多在合
合併果子(佇列和優先佇列)
有兩種方法 一種是佇列 一種是優先佇列(priority_queue) 這兩種方法的區別是佇列定義時沒有自動排序 所以只能在輸入的時候按順序才能輸出正解(所以佇列的方法不被認為是正解) 下面是程式碼 比較簡便: #include<bits/stdc++.h> using na
2004 合併果子
#include<iostream> #include<algorithm> #include<queue> using namespace std; priority_queue<int,vector<int>,gre
B - 樹-堆結構練習——合併果子之哈夫曼樹
初試堆的一系列操作 Problem Description 在一個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。 每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n-1次合併
隨筆-排序-合併果子
問題:合併果子 在一個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。 每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n-1次合併之後,就只剩下一堆了。多多在合併果子時總
Huffman樹_CH1701_合併果子
思路分析: 顯然, 直接應用Huffman演算法即可, AC程式碼如下: //CH1701_合併果子 #include <cstdio> #include <queue
洛谷 T63713 合併果子
題目:小Z很喜歡在果林裡漫步,望著樹上的果子,忍不住開始摘果子了。 他把果林裡的n棵樹上的果子都摘下來了(這也太過分了吧)!他還無聊地輸出了每一棵果樹上的果子個數$num[i]$。 小Z又決定把所有的果子都合成一堆。每一次合併,小Z把兩堆果子合併到一起,消耗的體力為兩堆果子的重量之和。顯然,所有的果子經過
[貪心] 合併果子
BZOJ 3669 合併果子 題目描述 在一個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。 每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n-
2127樹-堆結構練習——合併果子之哈夫曼樹
樹-堆結構練習——合併果子之哈夫曼樹 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 在一個果園裡,多多已經將所有
單調佇列及其deque寫法 HDU 3415+Poj 4002 (日期處理) + 合併果子
嘗試用deque寫一下單調佇列,發現速度還是可以接受的,STL依賴症越來越嚴重了。。。。 HDU 3415 Max Sum of Max-K-sub-sequence 題意:給出一個有N個數字(-1000..1000,N<=10^5)的環狀序列,讓你求一個和最大的連續
合併果子(小根堆 手打)
題目描述 在一個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。 每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過 n-1n−1 次合併之後, 就只剩
排序演算法(五)、堆排序 —— 合併果子
2004年NOIP全國聯賽普及組 題目描述: 在一個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。 每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n-1次合併之後,