SDUT揹包(01)換零錢

2021-08-20 17:36:50 字數 840 閱讀 2794

有揹包原理並是不是揹包問題。

通過滾動陣列來求出和 。

而不是用揹包來求最優

[cpp] 

view plain

copy

//從前乙個轉態轉移過來,選還是不選

for(

inti=1; i<=n; i++)  

else

f[i][j]=f[i-1][j];  

}  }  

//一維滾動陣列

for(

inti=1; i<=n; i++)  

for(

intj=m; j>=1; j--)  

if(weight[i]<=j)  

f[j]=max(f[j],f[j-weight[i]]+value[i]);  

3.完全揹包

[cpp] 

view plain

copy

//每件物品可以使用無數次,求最大值

memset(dp,-inf,sizeof

(dp));  

dp[0]=0;  

for(

inti=0;i

for(

intj=c[i];j<=v;j++)  

dp[j]=max(dp[j],dp[j-c[i]]+w[i]);  

#include using namespace std;

int main()

,i,j;

a[0]=1;

for(i=0;i<3;i++)

while(cin>>n)

return 0;

}

51nod 1101 換零錢 (0 1揹包,DP)

1101 換零錢 基準時間限制 1 秒 空間限制 131072 kb 分值 20 難度 3級演算法題 n元錢換為零錢,有多少不同的換法?幣值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。例如 5分錢換為零錢,有以下4種換法 1 5個1分 2 1個2分3個1分 3 2個2分1...

51nod 1101換零錢(揹包)

n元錢換為零錢,有多少不同的換法?幣值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。例如 5分錢換為零錢,有以下4種換法 1 5個1分 2 1個2分3個1分 3 2個2分1個1分 4 1個5分 由於結果可能會很大,輸出mod 10 9 7的結果 input 輸入1個數n,n...

換零錢 見解

n元錢換為零錢,有多少不同的換法?幣值包括1 2 5分,1 2 5角,1 2 5 10 20 50 100元。例如 5分錢換為零錢,有以下4種換法 1 5個1分 2 1個2分3個1分 3 2個2分1個1分 4 1個5分 由於結果可能會很大,輸出mod 10 9 7的結果 input 輸入1個數n,n...