砝碼稱重問題:設有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 這個詞乍一聽感覺甚是高大上,初次學習或者使用的時候會感覺難以理解,這是正常的,畢竟凡事都是一回生二回熟。其實它也不難的,大家要明白乙個道理,能寫到課本上給學生學習的東西必然屬於不難的東西,因為太難的東西寫到課本上讀者接受不了,這本書就...