洛谷 P1077 擺花

2021-10-04 17:48:01 字數 604 閱讀 7760

一道簡單的dp問題。

dp[i][j]表示前i種花j個花盆的方案數。那麼就有狀態轉移方程為sum(dp[i-1][k]),其中k的取值是從0到min(j, a[i])。

#include

using

namespace std;

int m, n;

int dp[

105]

[105];

int a[

105]

;int mod =

1000007

;int

min(

int a,

int b)

intmain()

用滾動陣列進行優化,dp[j]表示的是擺j盆花的方案數,轉化成01揹包問題。

#include

using

namespace std;

int mod =

1000007

;int n, m, a[

105]

, dp[

105]

;int

main()

擺花 洛谷p1077

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

洛谷 P1077 擺花

題目原位址 2 4 3 2 輸出 2首先,我們想到的一定是暴力dfs 20分 include include using namespace std int n,m,ans,a 105 b 105 void dfs int k,int space if k n return for int i mi...

洛谷p1077 擺花

題外廢話 真的超級喜歡這道題 擺花 題目鏈結 yy一提醒,我發現這道題和 洛谷p2089 烤雞有異曲同工之妙 資料更大了更容易tle呢qwq solution1 暴搜 搜尋 關於搜尋就不用多介紹了吧,這裡是用了dfs dfs函式中有兩個變數,rest和i分別表示還需要擺放多少盆花以及現在擺放到第幾種...