03 開餐館MOOC程式設計演算法基礎期末第三題

2021-09-02 11:09:09 字數 981 閱讀 1591

問題描述:

北大資訊學院的同學小明畢業之後打算創業開餐館.現在共有n 個地點可供選擇。小明打算從中選擇合適的位置開設一些餐館。這 n 個地點排列在同一條直線上。我們用乙個整數序列m1, m2, ... mn 來表示他們的相對位置。由於地段關係,開餐館的利潤會有所不同。我們用pi 表示在mi 處開餐館的利潤。為了避免自己的餐館的內部競爭,餐館之間的距離必須大於k。請你幫助小明選擇乙個總利潤最大的方案。

輸入標準的輸入包含若干組測試資料。輸入第一行是整數t (1 <= t <= 1000) ,表明有t組測試資料。緊接著有t組連續的測試。每組測試資料有3行,

第1行:地點總數 n (n < 100), 距離限制 k (k > 0 && k < 1000).

第2行:n 個地點的位置m1 , m2, ... mn ( 1000000 > mi > 0 且為整數,公升序排列)

第3行:n 個地點的餐館利潤p1 , p2, ... pn ( 1000 > pi > 0 且為整數)

輸出對於每組測試資料可能的最大利潤

樣例輸入

2

3 11

1 2 15

10 2 30

3 16

1 2 15

10 2 30

樣例輸出

40

30

dp題,dp[i]代表前i的最大利潤,dp[i]=max(dp[pos]+p[i],dp[i-1]),其中pos是第乙個能滿足與i相距k的餐館編號,如果沒有滿足條件的,那麼dp[i]等於前i-1裡最大的。

ac**:

#include#includeusing namespace std;

int main()

if(!flag)

}else dp[i]=max(dp[pos]+p[i],dp[i-1]);

} cout<} return 0;

}

程式設計與演算法(二)期末考試之03 開餐館

描述 北大資訊學院的同學小明畢業之後打算創業開餐館.現在共有n 個地點可供選擇。小明打算從中選擇合適的位置開設一些餐館。這 n 個地點排列在同一條直線上。我們用乙個整數序列m1,m2,mn 來表示他們的相對位置。由於地段關係,開餐館的利潤會有所不同。我們用pi 表示在mi 處開餐館的利潤。為了避免自...

09 最大子矩陣MOOC程式設計演算法基礎期末第九題

已知矩陣的大小定義為矩陣中所有元素的和。給定乙個矩陣,你的任務是找到最大的非空 大小至少是1 1 子矩陣。比如,如下4 4的矩陣 0 2 7 0 9 2 6 2 4 1 4 1 1 8 0 2 的最大子矩陣是 9 2 4 1 1 8 這個子矩陣的大小是15。輸入輸入是乙個n n的矩陣。輸入的第一行給...

MOOC程式設計與演算法二 遞迴二

1.表示式計算 輸入為四則運算表示式,僅由整數 組成,沒有空格,要求求其值。假設運算子結果都是整數 結果也是整數 表示式也是遞迴的定義 表示式由項的 組成 項由因子的 組成,因子可以是整數,也可以由帶括號的表示式組成 判斷是否還有表示式,項和因子,需要唯讀不取,根據讀出的字元確定是否需要取,並做後面...