超級書架(貪心思想)

2021-08-26 05:16:22 字數 1206 閱讀 1923

題面(from luogu)

超級書架

farmer john最近為奶牛們的圖書館添置了乙個巨大的書架,儘管它是如此的大,但它還是幾乎瞬間就被各種各樣的書塞滿了。現在,只有書架的頂上還留有一點空間。 所有n(1 <= n <= 20,000)頭奶牛都有乙個確定的身高h_i(1 <= h_i <= 10,000)。設所有奶牛身高的和為s。書架的高度為b,並且保證 1 <= b <= s < 2,000,000,007。 為了夠到比最高的那頭奶牛還要高的書架頂,奶牛們不得不象演雜技一般,一頭站在另一頭的背上,疊成一座「奶牛塔」。當然,這個塔的高度,就是塔中所有奶牛的身高之和。為了往書架頂上放東西,所有奶牛的身高和必須不小於書架的高度。顯然,塔中的奶牛數目越多,整座塔就越不穩定,於是奶牛們希望在能夠到書架頂的前提下,讓塔中奶牛的數目盡量少。 現在,奶牛們找到了你,希望你幫她們計算這個最小的數目。

輸入格式:

第1行: 2個用空格隔開的整數:n 和 b * 第2..n+1行: 第i+1行是1個整數:h_i

輸出格式:

第1行: 輸出1個整數,即最少要多少頭奶牛疊成塔,才能夠到書架頂部

樣例.in

6 40

6 18

11 13

19 11

樣例.out

3輸入說明:

一共有6頭奶牛,書架的高度為40,奶牛們的身高在6..19之間。

輸出說明:

一種只用3頭奶牛就達到高度40的方法:18+11+13。當然還有其他方法,在此不一一列出了。

題目分析

(水題,我用來湊luoguac數的,剛好100題)

可以用貪心的思想來思考,最少的個數,應該就是一直加大的(這樣更少)

這樣我們就可以很簡單的寫這一道題目了

**

#include 

using

namespace

std;

int a[20009],h,n,ans;

long total;

int main()

cout

return

0; //完美的結束程式

}

**蒟蒻新星c_uizrp_dzjopkl原創**

最優合併問題 貪心思想

最優合併問題 description 給定k 個排好序的序列s1 s2,sk 用2 路合併演算法將這k 個序列合併成乙個序列。假設所採用的2 路合併演算法合併2 個長度分別為m和n的序列需要m n 1次比較。試設計乙個演算法確定合併這個序列的最優合併順序,使所需的總比較次數最少。為了進行比較,還需要...

ACM 最少攔截系統 貪心思想

最少攔截系統 time limit 1000ms memory limit 32768k 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統。但是這種飛彈攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能超過前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,因為該系統還在...

CF C Socks 並查集 貪心思想

題意 看了許多遍才看懂意思,理解力賊差 就是說,給你n只襪子,從1 n編號,給出每只襪子的顏色,接下來m行,每行給出乙個l和r,代表這天要穿的襪子編號。求為了保證每天穿的兩隻襪子顏色相同,至少對幾隻襪子染色。思路 首先我們可以對這m對關係用並查集進行維護,把需要顏色相同的襪子放到乙個集合裡面去,然後...