千家信息网

如何使用golang求出将n堆石子合并成一堆的最小得分

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"如何使用golang求出将n堆石子合并成一堆的最小得分",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用golang求出将n堆石子合
千家信息网最后更新 2026年10月31日如何使用golang求出将n堆石子合并成一堆的最小得分

本篇内容主要讲解"如何使用golang求出将n堆石子合并成一堆的最小得分",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"如何使用golang求出将n堆石子合并成一堆的最小得分"吧!

代码用golang编写。代码如下:

package mainimport (    "fmt"    "math")func main() {       arr := []int{   1, 4, 2, 3}    ret := StoneMerge(arr)    fmt.Println(ret)}func sum(arr []int) []int {       N := len(arr)    s := make([]int, N+1)    s[0] = 0    for i := 0; i < N; i++ {           s[i+1] = s[i] + arr[i]    }    return s}func w(s []int, l int, r int) int {       return s[r+1] - s[l]}func StoneMerge(arr []int) int {       if len(arr) < 2 {           return 0    }    N := len(arr)    s := sum(arr)    dp := make([][]int, N)    for i := 0; i < N; i++ {           dp[i] = make([]int, N)    }    best := make([][]int, N)    for i := 0; i < N; i++ {           best[i] = make([]int, N)    }    for i := 0; i < N-1; i++ {           best[i][i+1] = i        dp[i][i+1] = w(s, i, i+1)    }    for L := N - 3; L >= 0; L-- {           for R := L + 2; R < N; R++ {               next := math.MaxInt64            choose := -1            for leftEnd := best[L][R-1]; leftEnd <= best[L+1][R]; leftEnd++ {                   cur := dp[L][leftEnd] + dp[leftEnd+1][R]                if cur <= next {                       next = cur                    choose = leftEnd                }            }            best[L][R] = choose            dp[L][R] = next + w(s, L, R)        }    }    return dp[0][N-1]}

执行结果如下:

到此,相信大家对"如何使用golang求出将n堆石子合并成一堆的最小得分"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

最小 得分 石子 并成 求出 代码 内容 学习 实用 更深 兴趣 实用性 实际 操作简单 方法 更多 朋友 结果 网站 频道 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会毛军 互联网科技巨头监管 中国互联网科技股 互联网核心科技是什么 港股互联网科技股 深圳齐家互联网科技 奇酷互联网络科技公司 互联网 视角下的科技创新 互联网科技英文翻译 科技大学互联网专业好不好 银川新华互联网科技学校地址 宝灵互联网科技有限公司 哈尔滨屹滨互联网科技有限公司 消费医药和互联网科技 开一家科技互联网公司需要多少钱 乌苏新华互联网科技做什么的 工业互联网科技创业 新氧科技和美国互联网有关系吗 广西科技产业互联网是什么 玉溪新华互联网科技怎么选 互联网黑科技 智网互联网科技 国外互联网科技网站 恒生科技互联网指数分析 链环科技传统企业怎么转型互联网 迪庆互联网科技招生 工业互联网科技成果转化 互联网科技手抄报图片 北京互联网科技类企业分布 科技互联网专业务虚会材料
0