格式
This commit is contained in:
@@ -313,50 +313,50 @@ for i in range(1, n):
|
||||
print(dp[n - 1][bagweight])
|
||||
|
||||
```
|
||||
### Go
|
||||
### Go
|
||||
```go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 读取 M 和 N
|
||||
var M, N int
|
||||
fmt.Scan(&M, &N)
|
||||
// 读取 M 和 N
|
||||
var M, N int
|
||||
fmt.Scan(&M, &N)
|
||||
|
||||
costs := make([]int, M)
|
||||
values := make([]int, M)
|
||||
costs := make([]int, M)
|
||||
values := make([]int, M)
|
||||
|
||||
for i := 0; i < M; i++ {
|
||||
fmt.Scan(&costs[i])
|
||||
}
|
||||
for j := 0; j < M; j++ {
|
||||
fmt.Scan(&values[j])
|
||||
}
|
||||
for i := 0; i < M; i++ {
|
||||
fmt.Scan(&costs[i])
|
||||
}
|
||||
for j := 0; j < M; j++ {
|
||||
fmt.Scan(&values[j])
|
||||
}
|
||||
|
||||
// 创建一个动态规划数组dp,初始值为0
|
||||
dp := make([]int, N + 1)
|
||||
// 创建一个动态规划数组dp,初始值为0
|
||||
dp := make([]int, N + 1)
|
||||
|
||||
// 外层循环遍历每个类型的研究材料
|
||||
for i := 0; i < M; i++ {
|
||||
// 内层循环从 N 空间逐渐减少到当前研究材料所占空间
|
||||
for j := N; j >= costs[i]; j-- {
|
||||
// 考虑当前研究材料选择和不选择的情况,选择最大值
|
||||
dp[j] = max(dp[j], dp[j-costs[i]] + values[i])
|
||||
}
|
||||
}
|
||||
// 外层循环遍历每个类型的研究材料
|
||||
for i := 0; i < M; i++ {
|
||||
// 内层循环从 N 空间逐渐减少到当前研究材料所占空间
|
||||
for j := N; j >= costs[i]; j-- {
|
||||
// 考虑当前研究材料选择和不选择的情况,选择最大值
|
||||
dp[j] = max(dp[j], dp[j-costs[i]] + values[i])
|
||||
}
|
||||
}
|
||||
|
||||
// 输出dp[N],即在给定 N 行李空间可以携带的研究材料最大价值
|
||||
fmt.Println(dp[N])
|
||||
// 输出dp[N],即在给定 N 行李空间可以携带的研究材料最大价值
|
||||
fmt.Println(dp[N])
|
||||
}
|
||||
|
||||
func max(x, y int) int {
|
||||
if x > y {
|
||||
return x
|
||||
}
|
||||
return y
|
||||
if x > y {
|
||||
return x
|
||||
}
|
||||
return y
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user