1. 程式人生 > >【01揹包】洛谷 P2677 超級書架 2

【01揹包】洛谷 P2677 超級書架 2

題目描述

Farmer John最近為奶牛們的圖書館添置了一個巨大的書架,儘管它是如此的大,但它還是幾乎瞬間就被各種各樣的書塞滿了。現在,只有書架的頂上還留有一點空間。 所有N(1 <= N <= 20)頭奶牛都有一個確定的身高H_i(1 <= Hi <= 1,000,000 - 好高的奶牛><)。設所有奶牛身高的和為S。書架的 高度為B,並且保證1 <= B <= S。 為了夠到比最高的那頭奶牛還要高的書架頂,奶牛們不得不象演雜技一般,一頭站在另一頭的背上,疊成一座“奶牛塔”。當然,這個塔的高度,就是塔中所有奶牛的身高之和。為了往書架頂上放東西,所有奶牛的身高和必須不小於書架的高度。 塔疊得越高便越不穩定,於是奶牛們希望找到一種方案,使得疊出的塔在高度不小於書架高度的情況下,高度儘可能小。你也可以猜到你的任務了:寫一個程式,計算奶牛們疊成的塔在滿足要求的情況下,最少要比書架高多少。

輸入輸出格式

輸入格式:

第1行: 2個用空格隔開的整數:N 和 B * 第2..N+1行: 第i+1行是1個整數:H_i

輸出格式:

第1行: 輸出1個非負整數,即奶牛們疊成的塔最少比書架高的高度

輸入輸出樣例

輸入樣例#1:

5 16
3
1
3
5
6

輸出樣例#1:

1

說明

輸出說明:

我們選用奶牛1、3、4、5疊成塔,她們的總高度為3 + 3 + 5 + 6 = 17。任何方案都無法疊出高度為16的塔,於是答案為1。

思路

這道題剛看上去可能會想到排序+貪心,後來都想到了反例,於是就想到了揹包。

題目要求我們求超過高度的最小高度,並且會保證所有奶牛的高度加起來會高過書架,那麼我們不妨換個思路,把所有的奶牛的高度相加得到sum,減去書架高度s,得到k,那麼我們要求的就是在不超過k(體積)的情況下求最大高度(價值),這是不是就變成了01揹包問題,於是問題迎刃而解。

程式碼

#include<iostream>
#include<cstdio>
using namespace std;
const int MAXN=100000+10;
int f[MAXN],h[MAXN];
int main()
{
    int n,sum=0,s;
    cin>>n>>s;
    for(int i=1;i<=n;i++){scanf("%d",&h[i]);sum+=h[i];}
    int k=sum-s;        //轉換思路
    for(int i=1;i<=n;i++)
    {
        for
(int j=k;j>=h[i];j--)f[j]=max(f[j],f[j-h[i]]+h[i]); } cout<<k-f[k]; return 0; }

相關推薦

01揹包 P2677 超級書架 2

題目描述 Farmer John最近為奶牛們的圖書館添置了一個巨大的書架,儘管它是如此的大,但它還是幾乎瞬間就被各種各樣的書塞滿了。現在,只有書架的頂上還留有一點空間。 所有N(1 <= N <= 20)頭奶牛都有一個確定的身高H_i(1 <

01揹包## P1004 方格取數

方格取數 題目 設有N \times NN×N的方格圖(N \le 9)(N≤9),我們將其中的某些方格中填入正整數,而其他的方格中則放入數字00。如下圖所示(見樣例): A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0

P2677 超級書架 2

stream ring ios sticky 輸入 fff cout 頂上 高度 P2677 超級書架 2 題目描述 Farmer John最近為奶牛們的圖書館添置了一個巨大的書架,盡管它是如此的大,但它還是幾乎瞬間就被各種各樣的書塞滿了

1000 超級瑪麗遊戲

題目描述 超級瑪麗是一個非常經典的遊戲。請你用字元畫的形式輸出超級瑪麗中的一個場景。 ******** ************ ####....#. #

二分圖P1640連續攻擊遊戲

接下來 真的是 str style 並且 一行 include can div 題目描述 lxhgww最近迷上了一款遊戲,在遊戲裏,他擁有很多的裝備,每種裝備都有2個屬性,這些屬性的值用[1,10000]之間的數表示。當他使用某種裝備時,他只能使用該裝備的某一個屬性。並且每

線段樹 P3372 模板線段樹 1

tree dtree cnblogs oot ++ query urn true typedef 動態開結點線段樹板子。 #include<cstdio> using namespace std; typedef long long ll; ll s

刷題 P3834 模板可持久化線段樹 1(主席樹)

!= tchar 這樣的 信息 reg har mem hair define 題目背景 這是個非常經典的主席樹入門題——靜態區間第K小 數據已經過加強,請使用主席樹。同時請註意常數優化 題目描述 如題,給定N個正整數構成的序列,將對於指定的閉區間查詢其區間內的第K小值。

刷題 P4319 變化的道路

tor line AR pty lse 輸入輸出格式 edge bool 之前 題目描述 小 w 和小 c 在 H 國,近年來,隨著 H 國的發展,H 國的道路也在不斷變化著 根據 H 國的道路法,H 國道路都有一個值 \(w\) ,表示如果小 w 和小 c 通過這條道路,

刷題 P3806模板點分治1

source getc deep data str oot root its || 題目背景 感謝hzwer的點分治互測。 題目描述 給定一棵有n個點的樹 詢問樹上距離為k的點對是否存在。 輸入輸出格式 輸入格式: n,m 接下來n-1條邊a,b,c描述a到b有一條長度為c

刷題 P2664 樹上遊戲

不同 ron clear 路徑 貢獻 utc ++i max long long 題目描述 lrb有一棵樹,樹的每個節點有個顏色。給一個長度為n的顏色序列,定義s(i,j) 為i 到j 的顏色數量。以及 現在他想讓你求出所有的sum[i] 輸入輸出格式 輸入格式: 第一行

刷題 P3901 數列找不同

math 格式 之前 gist sort put 不同 == sqrt 題目描述 現有數列 \(A_1,A_2,\cdots,A_N\) ,Q 個詢問 \((L_i,R_i)\) , \(A_{Li} ,A_{Li+1},\cdots,A_{Ri}\) 是否互不相同 輸入輸

刷題 P2709 小B的詢問

putc spa 之前 輸入格式 包含 -- query define \n 題目描述 小B有一個序列,包含N個1~K之間的整數。他一共有M個詢問,每個詢問給定一個區間[L..R],求Sigma(c(i)^2)的值,其中i的值從1到K,其中c(i)表示數字i在[L..R]中

LGR-0475月月賽

cti stat strong 半徑 要求 一起 lin 算法 pac 這次我期待了很久的Luogu賽制崩掉了 傳說中的Luogu神機就這樣被卡爆了 然後我過了20min才登上Luogu的網站,30min後才看到題目 然後交T1TM的不給我測!!!然後又叫了一次機子就炸了,

刷題 P3872 [TJOI2010]電影迷

得到 看電影 不同 res putc 相反數 urn oid pop 題目描述 小A是一個電影迷,他收集了上百部的電影,打算從中挑出若幹部在假期看完。他根據自己的口味和網上的介紹,對每部電影X都打了一個分數vX,表示自己喜歡的程度。這個分數的範圍在-1000至1000之間,

LGR-0497月月賽

while size printf class jump 二分 ++ 一個 sin Preface Luogu八月月賽都結束了我才來補七月月賽 這次月賽還是很狗的,在紹一的晚上恰逢刮臺風,然後直接打到一半斷網了 結果都沒有交上去GG 感覺這次難度適中,解法也比較清新自然吧,

刷題 P4320 道路相遇

temp double turn tput 路徑 point namespace tro 滿足 題目描述 在 H 國的小 w 決定到從城市 \(u\) 到城市 \(v\) 旅行,但是此時小 c 由於各種原因不在城市 \(u\),但是小 c 決定到在中途與小 w 相遇 由於

HDU2602 Bone Collector01揹包

Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 86567&nb

HDU1864 最大報銷額01揹包

最大報銷額 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 32784  

HDU2955 Robberies01揹包

Robberies Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 32227 &n

JZOJ5184GiftDP01揹包

題目大意: 題目連線:https://jzoj.net/senior/#main/show/5184 題目圖片: http://wx4.sinaimg.cn/mw690/0060lm7Tly1fwmsvyi1y8j30ow0na0um.jpg http://wx1.sinaimg.c