1.็ถๆๅ็ผฉdp
2.่ๅ
ๆ็ฎๅ็่ๅ
1 2 3 4 5 6 7 8 9 10 11
| void dp1(){ for(int i=1;i<=M;i++){ for(int j=0;j<=T;j++){ dp[i][j]=dp[i-1][j]; if(j-c[i]>=0) { dp[i][j] = max(dp[i][j],dp[i - 1][j - c[i]] + w[i]); } } } cout<<dp[M][T]<<endl; }
|
ไผๅ็ฉบ้ดๅคๆๅบฆ็่ๅ
1 2 3 4 5 6 7 8 9 10
| void dp2() { for (int i = 1; i <= M; i++) { for (int j = 0; j <= T; j++) { dp[1][j] = dp[0][j]; if (j - c[i] >= 0) { dp[1][j] = max(dp[1][j], dp[0][j - c[i]] + w[i]); } } } }
|
01่ๅ
ๅบ่ฏฅๅฏน๏ผๅญๅฐ่ฑกๅ็
1 2 3 4 5 6 7 8 9
| void dp3(){ for(int i=1;i<=M;i++){ for(int j=T;j>=0;j--){ if(j-c[i]>=0){ dp[j]=dp[j-c[i]]+w[i]; } } } }
|