金明的預算方案 DP

2021-08-03 12:55:29 字數 996 閱讀 8534

本題由三種思路,但是第三種和第一種感覺差不多。

1 可以發現乙個物品最多五種狀態。於是用5種狀態進行01揹包。

要注意 狀態轉移的過程。

2 樹形dp,其實也是01揹包的層次過程。。

3 分組揹包。但是同普通的分組揹包不一樣的是,選附件也要選主件。所以我在 分組資料裡放乙個(0,0)。dp的時候加上主件。

#include #include #include using namespace std;

const int maxn=70;

int a[maxn];

int b[maxn];

int belong[maxn];

int dp[maxn][32100];

int m,n;

int treedp(int cost,int num)

}} return 0;

}int main()

treedp(m,0);

for(int i=0;i<=n;i++)

else

else}}

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

else

dp[i][j]=dp[i-1][j];}}

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

}return 0;

}

#include #include #include using namespace std;

const int maxn=70;

vector>v[maxn];

int va[maxn];

int imp[maxn];

int dp[50006];

// 分組揹包,比01揹包泛化能力要強。

int main()

else

//}}

printf("%d\n",dp[allv]);

return 0;

}

金明的預算方案

problem description 金明今天很開心,家裡購置的新房就要領鑰匙了,新房裡有一間金明自己專用的很寬敞的房間。更讓他高興的是,媽媽昨天對他說 你的房間需要購買哪些物品,怎麼布置,你說了算,只有不超過n元錢就行 今天一早,金明就開始做預算了,他把想買的物品分為兩類 主件和附件,附件是從屬...

金明的預算方案

題目描述 金明今天很開心,媽媽昨天對他說 你的房間需要購買哪些物品,你說了算,只要不超過n元錢就行 今天一早,金明就開始做預算了,他把想買的物品分為兩類 主件與附件,附件是從屬於某個主件的,下表就是一些主件與附件的例子 主件 附件 電腦 印表機,掃瞄器 書櫃 圖書 書桌 檯燈,文具 工作椅 無 如果...

金明的預算方案

題目 分析一下,若想選附件,必然要選其主件,看上去是個依賴揹包問題,也就是樹形dp,但是這個題目限制了乙個問題,也就是乙個主件至多有2個附件,那麼也就只有4種方案,只選主件,選主件和附件1,選主件和附件2,選主件和附件1和附件2。只有4種方案,所以將其轉化成為乙個組合揹包問題。include inc...