第三题,我 记忆画搜索 a c, 用的go. func minTime(n, a, b int) int*** := map[int]int64{} var dp func(n int) int64 dp = func(n int) int64 { if n == 0 { return 0 } if n == 1 { return int64(a+b) } if _, ok := memo[n]; ok { return memo[n] } var T int64 // 需要的时间 T = int64((a+b)*n) // 分成n组,可以直接完成 // k组 遍历 for k := 2; k < n; k++ { var curT int64 curT = int64(a*n+b*k) // 剪枝 *** 不知道为啥对这里,加了就 从 80% -> 100% if curT > T { continue } // 向上取整 ,k组 最多一组有多少个 curT += dp(ceil(n/k)) T = min(T, curT) } memo[n] = T return T } return dp(n) } func min()... func ceil()...
1 4

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务