hdu 1712 分組揹包)

2021-06-22 05:38:40 字數 574 閱讀 2872

思路:這是一道簡單的分組揹包,因為每種課可以有多種選擇:花幾天時間在該課上。一旦作出選擇,就不能再選該課,就相當於有多組物品,每組內的物品互相衝突,最多只能選一件。

偽碼:

for 所有的組k

for v=v..0

for 所有的i屬於組k

f[v]=max

1 #include2

const

int maxn=110;3

using

namespace

std;

4int

dp[maxn];

5int

map[maxn][maxn];67

intmain()15}

16 memset(dp,0,sizeof

(dp));

17for(int i=1;i<=n;i++)23}

24}25}

26 printf("

%d\n

",dp[m]);27}

28return0;

2930 }

hdu 1712 分組揹包

分組的揹包問題 問題 有n件物品和乙個容量為v的揹包。第i件物品的費用是c i 價值是w i 這些物品被劃分為若干組,每組中的物品互相衝突,最多選一件。求解將哪些物品裝入揹包可使這些物品的費用總和不超過揹包容量,且價值總和最大。演算法 這個問題變成了每組物品有若干種策略 是選擇本組的某一件,還是一件...

HDU 1712(分組揹包)

這個寫的不錯 發現問題的起因是hdu 1712,乙個赤裸的分組揹包。所以有必要說一下這個題目。題意 乙個學生用m天的時間複習n門課程,每門課程花費不同的天數,有不同的收穫。問如何安排這m天,使得收穫最大。思路 可以將每一門課看成乙個分組,每門課不同天數的選擇看成是分組的物品 顯然只能有乙個選擇 物品...

hdu1712 分組揹包

題意 有個學生要複習 n 個功課 每個功課有 m 種複習方式 每複習乙個功課就會得到一定的回報 即 滿足乙個矩陣 即 第 i 種功課需要花費 j 天並得到 v i j 的回報 問怎樣分配才能得到最大回報 理解 原以為是 01揹包 結果發現有個問題 即 如果用 1 天覆習了該功課,那麼就不能再複習該功...