P1077 擺花 揹包DP

2022-04-07 21:54:19 字數 1016 閱讀 7166

小明的花店新開張,為了吸引顧客,他想在花店的門口擺上一排花,共m盆。通過調查顧客的喜好,小明列出了顧客最喜歡的n種花,從1到n標號。為了在門口展出更多種花,規定第iii種花不能超過\(a[i]\)盆,擺花時同一種花放在一起,且不同種類的花需按標號的從小到大的順序依次擺列。

試程式設計計算,一共有多少種不同的擺花方案。

第一行包含兩個正整數n和m,中間用乙個空格隔開。

第二行有n個整數,每兩個整數之間用乙個空格隔開,依次表示\(a1,a2,…,an\)。

乙個整數,表示有多少種方案。注意:因為方案數可能很多,請輸出方案數對\(1000007\)取模的結果。

輸入 #1

2 4

3 2

輸出 #1

【資料範圍】

對於\(20\)%資料,有\(0;

對於\(50\)%資料,有\(0;

對於\(100\)%資料,有\(0。

noip 2012 普及組 第三題

定義狀態:\(f[i][j]\)為前 i 種花共擺放了 j 盆的總方案數。

易得\(f[i][j] = \sum_^f[i-1][j-k]\)(第i 種花擺放了 k 盆)

時間複雜度:\(o(nm*a[i])\)

空間複雜度:\(o(nm)\)

此題根據狀態轉移方程可以將陣列改為滾動陣列或一維陣列(同揹包dp)。

我是來水題解的,此處不貼優化**。

#include #include using namespace std;

const int n = 1e2 + 5, mod = 1e6 + 7;

int read()

int n, m, a[n], f[n][n];

int main()

} }printf("%d\n", f[n][m]);

return 0;

}

多重揹包 P1077 擺花

題目描述 小明的花店新開張,為了吸引顧客,他想在花店的門口擺上一排花,共mm盆。通過調查顧客的喜好,小明列出了顧客最喜歡的nn種花,從11到nn標號。為了在門口展出更多種花,規定第ii種花不能超過a iai 盆,擺花時同一種花放在一起,且不同種類的花需按標號的從小到大的順序依次擺列。試程式設計計算,...

洛谷P1077 擺花 揹包dp

小明的花店新開張,為了吸引顧客,他想在花店的門口擺上一排花,共m盆。通過調查顧客的喜好,小明列出了顧客最喜歡的n種花,從1到n標號。為了在門口展出更多種花,規定第i種花不能超過ai盆,擺花時同一種花放在一起,且不同種類的花需按標號的從小到大的順序依次擺列。試程式設計計算,一共有多少種不同的擺花方案。...

P1077 擺花 dp 搜尋)

傳送門 思路 dpdp dp的經典題,若沒有思路先嘗試爆搜,會t tt掉,然後記憶化一下就可以acac ac,當然能用記憶化搜尋,肯定也能dpdp dp了,最後根據別的大佬的推出來是01 0101 揹包。tql tqltq l 搜尋 include using namespace std typed...