USACO 5 3 1 量取牛奶

2022-05-21 07:25:38 字數 2146 閱讀 2257

農夫約翰要量取 q(1 <= q <= 20,000)夸脫(夸脫,quarts,容積單位——譯者注) 他的最好的牛奶,並把它裝入乙個大瓶子中賣出。消費者要多少,他就給多少,從不有任何誤差。 

農夫約翰總是很節約。他現在在奶牛五金商店購買一些桶,用來從他的巨大的牛奶池中量出 q 夸脫的牛奶。每個桶的**一樣。你的任務是計算出乙個農夫約翰可以購買的最少的桶的集合,使得能夠剛好用這些桶量出 q 夸脫的牛奶。另外,由於農夫約翰必須把這些桶搬回家,對於給出的兩個極小桶集合,他會選擇「更小的」乙個,即:把這兩個集合按公升序排序,比較第乙個桶,選擇第乙個桶容積較小的乙個。如果第乙個桶相同,比較第二個桶,也按上面的方法選擇。否則繼續這樣的工作,直到相比較的兩個桶不一致為止。例如,集合 比集合 要好。 

為了量出牛奶,農夫約翰可以從牛奶池把桶裝滿,然後倒進瓶子。他決不把瓶子裡的牛奶倒出來或者把桶裡的牛奶倒到別處。用乙個容積為 1 夸脫的桶,農夫約翰可以只用這個桶量出所有可能的夸脫數。其它的桶的組合沒有這麼方便。 計算需要購買的最佳桶集,保證所有的測試資料都至少有乙個解。

line 1: 乙個整數 q 

line 2: 乙個整數p(1 <= p <= 100),表示商店裡桶的數量 

lines 3..p+2: 每行包括乙個桶的容積(1 <= 桶的容積 <= 10000)

輸出只有一行,由空格分開的整數組成: 

為了量出想要的夸脫數,需要購買的最少的桶的數量,接著是:乙個排好序的列表(從小到大),表示需要購買的每個桶的容積

題解:這個題目做法有很多,可以通過對筒子取魔來知道所列舉筒子的範圍,最後加個最優性剪枝就可以了,**參考大牛們的部落格,

我是用迭代深搜,限制筒子的數目,把筒子列舉出來之後跑乙個完全揹包來check打的。**如下:

#include#include

#include

#include

#include

using

namespace

std;

int dp[20010

];int tong[110

];int use[110

];bool b[110

];int q,p,flag=0

;bool judge(int

num)

} if(dp[q]==1) return1;

return0;

}void print(int

num)

}void dfs(int now,int

top)

return

; }

for(int i=1;i<=p;i++)

}int

main()

sort(tong+1,tong+p+1

);

for(int top=1;top<=p;top++)

return0;

}

#include

#include

#include

#include

#include

using

namespace

std;

intdp

[20010

];int

tong

[110

];int

use[

110];

boolb[

110];

intq,p

,flag=0

;bool

judge

(int

num)}if

(dp[q

]==1

)return1;

return0;

}void

print

(int

num)

}void

dfs(

intnow

,int

top)

return;}

for(

inti=1

;i<=p;

i++)

}int

main

()sort

(tong+1

,tong+p

+1);for

(int

top=1;

top<=p;

top++)

return0;

}

USACO 5 3解題報告

題目翻譯 搜尋,以桶的數量,桶的數量上限,剩餘牛奶量為參量進行搜尋。乙個桶可以使用c 剩餘牛奶量 桶的容量次,分別對使用1 c次該桶的情況進行搜尋 同時,但凡出現桶的容量大於當前答案便進行剪枝。題目翻譯 插入新視窗時,將新視窗的高度置於當前最小 置頂時,將視窗的高度置於當前最小 置底時,將視窗高度置...

USACO5 3 巨大的牛棚Big Barn

usaco 5.3.4 農夫約翰想要在他的正方形農場上建造一座正方形大牛棚。他討厭在他的農場中砍樹,想找乙個能夠讓他在空曠無樹的地方修建牛棚的地方。我們假定,他的農場劃分成 n x n 的方格。輸入資料中包括有樹的方格的列表。你的任務是計算並輸出,在他的農場中,不需要砍樹卻能夠修建的最大正方形牛棚。...

USACO 修理牛棚

同樣是一道貪心題,我的思路是用乙個陣列存下所有的空擋,對空擋進行排序,然後再在總長度中減去前m 1 大的空檔長度。關鍵還是理解題意。貌似洛谷 oj不支援 int min 之類的。還有要對初始資料排一次序,害我 wa了一次。include include includeusing namespace ...