description
某國成立了乙個新的航空公司。該公司準備採購飛機來運營屬下的兩條航線a與b。他們聯絡了一些飛機製造商,這些製造商提供了他們飛機的資料。
資料裡面記錄了每種飛機的載客量,以及他們飛航線a與航線b所需要的燃油量。
通過市場調查,該公司摸清了兩條航線的日均客流量。已知該航空公司每日能夠採購到一定數目的燃油。目前,該公司在制定採購計畫,
對於所有型號的飛機,他們可以採購任意數目。然而,他們正在懷疑,在燃油數目的限制下,他們的採購能否可以滿足兩條航線的客流量。
請寫乙個程式解決這個問題,作出回答。
輸入格式
測試資料報括多組樣例。資料以case開頭,表示測試樣例的數目。
對於每組樣例,第1行有兩個整數,n與fuel,表示供航空公司採購的飛機種類數目,以及他們每日能夠採購到的燃油數目。
(1<=n<=1000, 0<=fuel <= 1000)
第2行有兩個整數:p1,p2,表示兩條航線每日的客流量。
第3行有n個整數:c1,c2,…,cn,每個數字表示第i個型號的飛機的載客量。
第4行有n個整數:f11,f12,…,f1n,每個數字表示第i個型號的飛機飛航線a的耗油量。
第5行有n個整數:f21,f 22,…,f2n,每個數字表示第i個型號的飛機飛航線b的耗油量。
輸出格式
對於每個樣例的輸出均為一行,包括乙個數字:0或者1。
如果採購商給出的飛機列表在燃油的限制條件下,能夠滿足兩條航線的客流,輸出1,否則輸出0。
輸入樣例
2 3 16
299 499
100 200 250
2 3 4
3 5 6
3 17
299 499
100 200 250
2 3 4
3 5 6
輸出樣例 0 1
提示 第乙個樣例中,有3種飛機可供採購。但是由於每日燃油的限制,無論如何採購,都無法滿足兩條航線的載客任務。
第二個樣例中,有3種飛機可供採購。航線a需要兩架飛機運營:第1種飛機1架,第2種飛機1架。航線b需要2架飛機運營:第三種飛機2架。
這個解決方案每日的耗油量是2+3+6+6=17,滿足題目要求。
計算滿足每條航線客運量的最低耗油量 amin,bmin,
totoal = amin + bmin
判斷total和可用油量的大小關係即可
最低耗油量計算:
因為每架飛機有載客量和耗油量的概念,所以每條航線的計算都可以當成揹包問題
又因為每個型號的飛機可以購買無限架,所以是完全揹包問題。
先按一般的完全揹包解法求出f[ i ] [ j ],f[ i ] [ j ]表示前 i 個物品在容量為 j 的情況
下所能得到的最大價值(在這裡就表示前 i 種飛機在耗油量為 j 的情況下的最大載
客量然後遍歷f[ i ] [ j ]求出滿足客運量的最低耗油量
揹包九講
#include
#include
int max(int a, int b)
int getmin(int n, int fuel, int total, int value, int weight);
int flag[1001][1001];
int main()
return0;}
int getmin(int n, int fuel, int total, int value, int weight)
for(int i = 0; i < fuel; i ++)
for(int j = 0; j < n; j ++)
if(flag[j][i] >= total)
m: if(min == -1)
min = 10000000;
return min;
}
ACM複習(24)8623 龍龍
description 在比賽的時候,1y 1 次ac 是很值得高興的事情。但很多大牛總會因為很弱智的錯誤先wa 一次,再ac。而很多時候,這點罰時的差距使得他們與金牌無緣。弱智錯誤系列中最顯著的就是忘記加龍龍。龍龍外國人叫它作long long,表示64位整數,輸入與輸出64位整數則可以使用例如 ...
ACM複習(34)9519 偷吃
超牛和lyd最近買了好多零食啊,可是呢,因為龍教很貪吃,經常偷吃他們的東西。為了要讓龍教吃不到,他們想到了個方法,他們叫pkkj給他們n個箱子,然後他們就把箱子排成一列,把他們買回來的三種零食 包括薯片,果凍還有餅乾 放進那裡面。然後讓龍教猜箱子裡面的食物,只有兩次機會,猜不到就沒得吃。所以他們想讓...
ACM入門(筆試複習)指南
從大一下冊開始參加程式設計競賽,到大三下,沒給學校帶來什麼榮譽,倒是學校和老師無私的鍛鍊了我。雖然是acm出身,我一直不敢寫關於acm相關的部落格。可能內心一直覺得自己太菜了,怕大佬們笑話吧。acm知識點圖譜 這個是noip的,跟acm差不多 因為是入門 筆試複習 教程,所以我就不去整那些我自己看不...