排序 緊急集合

2022-04-10 08:21:52 字數 1375 閱讀 9753

時間限制: 1 sec  記憶體限制: 64 mb

提交: 32  解決: 13

[提交] [狀態] [討論版] [命題人:]

題目描述

史上著名的大魔導師列別捷夫曾經說過:「平靜的湖面,鍛鍊不出精悍的水手;安逸的生活打造不出時代的偉人。」這句話用在監獄的獄警身上實在是再恰當不過,由於監獄一千年來從未出過任何差錯,因此幾乎所有的獄警都或多或少的有些懶散,我們可以將之量化為乙個數值即懶散值。所以當典獄長決定集合n個獄警以圍捕修羅王和邪狼時,他所花費的體力是可觀的。

典獄長一次可以將兩群人集合在一起,所花費的體力是這兩堆人的懶散值之和。可以看出,經過n-1次集合,所有的獄警就集合在一起了。例如有3個獄警,懶散值依次為1,2,9。可以先將懶散值為1、2的獄警合併為一群,新群數目為3,耗費體力為3。接著,將新群與懶散值為9的獄警合併,又得到新的群,數目為12,耗費體力為12。所以典獄長總共耗費體力=3+12=15。可以證明15為最小的體力耗費值。那麼,怎樣集合,典獄長花費的體力最少呢?

輸入包括兩行,第一行是乙個整數n(1≤n≤10000),表示獄警人數。第二行包含n個整數,用空格分隔,第i個整數ai(1≤ai≤20000)是第i個獄警的懶散值。

輸出包括一行,這一行只包含乙個整數,也就是最小的體力耗費值。輸入資料保證這個值小於231。

樣例輸入

3

1 2 9

樣例輸出

15

提示對於30%的資料,保證有n≤1000;

對於50%的資料,保證有n≤5000;

對於全部的資料,保證有n≤10000。

**:

#include #include 

#include

#include

#include

#include

#include

#include

#include

#include

#define range(i,a,b) for(int i=a;i<=b;++i)

#define ll long long

#define rerange(i,a,b) for(int i=a;i>=b;--i)

#define fill(arr,tmp) memset(arr,tmp,sizeof(arr))

using

namespace

std;

intn;

vector

num(10005

);void

init()

void

solve()

cout

}int

main()

view code

排序 緊急集合

題目描述 史上著名的大魔導師列別捷夫曾經說過 平靜的湖面,鍛鍊不出精悍的水手 安逸的生活打造不出時代的偉人。這句話用在監獄的獄警身上實在是再恰當不過,由於監獄一千年來從未出過任何差錯,因此幾乎所有的獄警都或多或少的有些懶散,我們可以將之量化為乙個數值即懶散值。所以當典獄長決定集合n個獄警以圍捕修羅王...

排序 緊急集合

時間限制 1 sec 記憶體限制 64 mb 提交 26 解決 10 提交 狀態 討論版 命題人 admin 題目描述 史上著名的大魔導師列別捷夫曾經說過 平靜的湖面,鍛鍊不出精悍的水手 安逸的生活打造不出時代的偉人。這句話用在監獄的獄警身上實在是再恰當不過,由於監獄一千年來從未出過任何差錯,因此幾...

upc 緊急集合 優先佇列

問題 c 排序 緊急集合 時間限制 1 sec 記憶體限制 64 mb 題目描述 史上著名的大魔導師列別捷夫曾經說過 平靜的湖面,鍛鍊不出精悍的水手 安逸的生活打造不出時代的偉人。這句話用在監獄的獄警身上實在是再恰當不過,由於監獄一千年來從未出過任何差錯,因此幾乎所有的獄警都或多或少的有些懶散,我們...