国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Luogu P1090、1334、2664+隊(duì)列

2019-11-10 18:14:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

我的天啊,這三題code都一樣尷尬尷尬尷尬

題目大意

給你一些數(shù),每次可以選取兩個(gè)相加成為一個(gè),新數(shù)即為得分。所有數(shù)加成一個(gè)后,求最小得分。

分析

其實(shí)就是每次選兩個(gè)最小的數(shù)相加再放回?cái)?shù)列中。

如果用sort效率極低(每次都要sort,時(shí)間復(fù)雜度為O(n^2*logn))

那么,我們的隊(duì)列出(當(dāng)當(dāng)當(dāng)當(dāng))

Code

#include<iostream>#include<cstdio>#include<queue>using namespace std;long long int i,m,n,j,k;PRiority_queue<long long int>a;int main(){	cin>>n;	for(i=1;i<=n;i++){		scanf("%d",&k);		a.push(-k);	}	for(i=1;i<n;i++){		int x,y;		x=-a.top();		a.pop();		y=-a.top();		a.pop();		m+=x+y;		a.push(-x-y);	}	cout<<m;	return 0;}

隊(duì)列

其實(shí)上面的代碼用到了優(yōu)先隊(duì)列

隊(duì)列

先進(jìn)先出(First In First Out,FIFO)表。STL中為queue。

queue可以在頭部彈出、尾部壓入。

queue<data>a定義一個(gè)data形的隊(duì)列
queue<data>a(b)隊(duì)列a為隊(duì)列b的副本
a.push(x)在隊(duì)列尾部壓入x
a.pop()彈出隊(duì)列頂部的元素
a.top()訪問隊(duì)首元素
其他懶得寫這些就夠了

優(yōu)先隊(duì)列

優(yōu)先隊(duì)列與隊(duì)列的區(qū)別就是優(yōu)先隊(duì)列隊(duì)首元素是最大的。

普通的優(yōu)先隊(duì)列為大根堆,若要轉(zhuǎn)化成小根堆只需元素取相反數(shù)即可。

priority_queue<data>a定義一個(gè)data形的隊(duì)列
priority_queue<data>a(b)隊(duì)列a為隊(duì)列b的副本
a.push(x)在隊(duì)列尾部壓入x
a.pop()彈出隊(duì)列頂部的元素
a.top()訪問隊(duì)首元素
其他也懶得寫這些也就夠了


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 达日县| 安福县| 贞丰县| 宜城市| 宣城市| 玉林市| 北流市| 宜兴市| 莱州市| 淮阳县| 冕宁县| 泽普县| 海丰县| 松滋市| 香格里拉县| 岑溪市| 平凉市| 宾川县| 定安县| 开化县| 特克斯县| 衡东县| 聂拉木县| 三明市| 施甸县| 元阳县| 辽宁省| 南溪县| 乌恰县| 固原市| 深州市| 定南县| 盐边县| 堆龙德庆县| 永宁县| 德州市| 天津市| 龙陵县| 鄂托克旗| 巴楚县| 新民市|