動態規劃 砝碼稱重

2022-02-14 13:05:01 字數 719 閱讀 7446

砝碼稱重問題:設有1g、2g

、3g、5g

、10g

、20g

的砝碼各若干枚(其質量

<=1000g

),求出用他們能稱出的質量的種類數(不包括質量為0的情況)。

設dp[1000]陣列為標記陣列。當dp=0時,表示質量為i的情況,目前沒有稱出;當dp=1時,表示質量為i的情況已經稱出。

本題目中有多個砝碼,我們順序處理每乙個砝碼。

當處理第j個砝碼,質量為wj時,有下列推導公式:

完整程式**如下:

#include

#include

using namespace std;

int w[6]=;

int a[6]=;

int sum=0;

int dp[1005];

int main()

memset(dp,0,sizeof(dp));

dp[0]=1;

for(int i=0;i<6;i++)  //6種不同砝碼}}

}int tot=0;

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

cout<

return  0;

}

動態規劃 砝碼稱重

問題描述 設有1g,2g,3g,5g,10g,20g的砝碼各若干枚 其總重 1000g 要求 輸入 a1 a2 a3 a4 a5 a6 表示1g砝碼有a1個,2g砝碼有a2個,20g砝碼有a6個 輸出 total n n表示用這些砝碼能稱出的不同重量的個數,但不包括乙個砝碼也不用的情況 輸入樣例 1...

動態規劃 砝碼稱重問題

動態規劃 dynamic programming 這個詞乍一聽感覺甚是高大上,初次學習或者使用的時候會感覺難以理解,這是正常的,畢竟凡事都是一回生二回熟。其實它也不難的,大家要明白乙個道理,能寫到課本上給學生學習的東西必然屬於不難的東西,因為太難的東西寫到課本上讀者接受不了,這本書就沒有出版的意義了...

動態規劃 砝碼稱重問題

一 演算法分析 動態規劃 dynamic programming 這個詞乍一聽感覺甚是高大上,初次學習或者使用的時候會感覺難以理解,這是正常的,畢竟凡事都是一回生二回熟。其實它也不難的,大家要明白乙個道理,能寫到課本上給學生學習的東西必然屬於不難的東西,因為太難的東西寫到課本上讀者接受不了,這本書就...