【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-047】洛谷5月月賽
cti stat strong 半徑 要求 一起 lin 算法 pac 這次我期待了很久的Luogu賽制崩掉了 傳說中的Luogu神機就這樣被卡爆了 然後我過了20min才登上Luogu的網站,30min後才看到題目 然後交T1TM的不給我測!!!然後又叫了一次機子就炸了,
【刷題】洛谷 P3872 [TJOI2010]電影迷
得到 看電影 不同 res putc 相反數 urn oid pop 題目描述 小A是一個電影迷,他收集了上百部的電影,打算從中挑出若幹部在假期看完。他根據自己的口味和網上的介紹,對每部電影X都打了一個分數vX,表示自己喜歡的程度。這個分數的範圍在-1000至1000之間,
【LGR-049】洛谷7月月賽
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 Collector【01揹包】
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 Robberies【01揹包】
Robberies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 32227 &n
【JZOJ5184】Gift【DP】【01揹包】
題目大意: 題目連線:https://jzoj.net/senior/#main/show/5184 題目圖片: http://wx4.sinaimg.cn/mw690/0060lm7Tly1fwmsvyi1y8j30ow0na0um.jpg http://wx1.sinaimg.c