原题链接:https://www.acwing.com/problem/content/3/
package main
import "fmt"
const N = 1010
var dp [N]int
func main() {
var n, m, v, w int
fmt.Scan(&n, &m)
for i := 0; i < n; i++ {
fmt.Scan(&v, &w)
for j := v; j <= m; j++ { //与01背包问题区别就是这里,是从小到大
dp[j] = max(dp[j], dp[j - v] + w)
}
}
fmt.Println(dp[m])
}
func max(a int, b int) int {
if a > b {
return a
}
return b
}