七台河网站制作咨询公司网站模板

张小明 2026/1/10 8:58:19
七台河网站制作,咨询公司网站模板,企业网站优化解决方案,商务网站开发的基本流程经典问题描述#xff1a;有 n 堆石子排成一排#xff0c;第 i 堆有 ai 个石子。 每次只能合并相邻的两堆#xff0c;合并代价等于这两堆石子的总数。 合并后形成一堆新石子。 问#xff1a;把所有石子合并成一堆的最小总代价。输入3(n的大小)8 5 8输出34解释#xff1a;首…经典问题描述有 n 堆石子排成一排第 i 堆有 ai 个石子。每次只能合并相邻的两堆合并代价等于这两堆石子的总数。合并后形成一堆新石子。问把所有石子合并成一堆的最小总代价。输入3(n的大小)8 5 8输出34解释首先合并8-5成13代价是13. 合并后石子为13 8.然后合并13-8代价是21.所以总代价为34贪心or动态规划在石子合并里最自然的贪心直觉只有这一种每一步都合并当前代价最小的相邻两堆也就是每次找 a[i] a[i1] 最小的一对先合它这个策略非常“像 Huffman”所以特别容易误入。⚠️ 问题就出在石子合并中一次合并的结果会被“反复收费”所以当前的最小代码并不是全局的最小代价。这就是贪心失效的根本原因贪心反例石子堆 4 3 3 4贪心做法每次合最小相邻对1️⃣ 合并中间的3 3 6代价 6现在变成4 6 42️⃣ 合并4 6 10或 64代价 10现在变成10 43️⃣ 合并10 4 14代价 14 总代价6 10 14 30最优做法非贪心1️⃣ 先合左边4 3 7代价 77 3 42️⃣ 再合右边3 4 7代价 77 73️⃣ 最后合并7 7 14代价 14 总代价7 7 14 28这是一个「区间 DP」问题记住一句判断口诀“对象是连续区间决策是选断点代价和区间整体有关”→ 基本就是区间 DP我们逐条对照石子合并状态的本质是什么最终不是关心“某一步怎么合”而是关心某一段连续石子合并成一堆最少要花多少钱这句话本身就已经是一个区间[l ........ r]所以状态一定是dp[l][r] 把第 l 堆到第 r 堆合并成一堆的最小代价⚠️ 注意不是过程是“已经合并完成”的最优结果状态转移是怎么发生的不管你前面怎么合最后一步一定是把某两堆「已经合并好的大堆」合成一堆而这两堆必然形如[l .... k] [k1 .... r][l..k]和[k1..r]各自已经合成一堆合并它们的代价 区间总石子数设前缀和sum[i] a1 a2 ... ai那么cost(l, r) sum[r] - sum[l-1]所以状态转移就只能是dp[l][r] min over k∈[l, r-1] ( dp[l][k] dp[k1][r] cost(l, r) )边界条件一个堆需要合并吗dp[i][i] 0不需要任何代价C代码实现int sum(int prefix[], int l, int r) { return prefix[r] - prefix[l - 1]; } int main() { int n; cin n; int a[107], prefix[107] { 0 }; //我这里下标是从1开始的 for (int i 1; i n; i) { cin a[i]; } //prefix[i]是从[1,i]的和 for (int i 1; i n; i) { prefix[i] prefix[i - 1] a[i]; } //dp表示把区间 [l, r] 合并成一堆的最小代价 long long dp[107][107]; //单根不用合并 for (int i 1; i n; i) dp[i][i] 0; //枚举合并区间长度 for (int len 2; len n; len) { //枚举开始位置 for (int l 1; l len - 1 n; l) { //区间是[l,llen-1],长度就是len int r l len - 1; dp[l][r] LLONG_MAX; //所谓合并可以这么理解 //如果[l,k]和[k1,r]已经合并完了那么再合并的代价就是sum(l,k)sum(k1,r)即sum(l,r) //然后[l,k]和[k1,r]也有合并的代价所以[l,k]和[k1,r]的合并代价就是dp[l][k]dp[k1][r]sum(l,r) //我们枚举所有k属于[l,r)这样就能找到dp[l][r]的最小合并代价 for (int k l; k r; k) { dp[l][r] fmin(dp[l][r], dp[l][k]dp[k1][r]sum(prefix,l,r)); } } } cout dp[1][n]; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

wordpress多站点不显示昆明网站建设搜王道下拉

想要轻松管理《艾尔登法环》存档?ER-Save-Editor这款开源工具让你5分钟从新手变专家!这款采用Rust语言开发的存档管理工具,支持PC和PlayStation平台,让存档转移、角色修改变得简单安全。 【免费下载链接】ER-Save-Editor Elden Ri…

张小明 2026/1/9 1:49:42 网站建设

宠物商品销售网站开发背景网站制作方案范文

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

张小明 2026/1/9 8:19:39 网站建设

360建网站海报模板图片

Fiddler Web Debugger中文版终极指南:2025年免费网络调试神器快速上手 【免费下载链接】zh-fiddler Fiddler Web Debugger 中文版 项目地址: https://gitcode.com/gh_mirrors/zh/zh-fiddler 还在为网络请求调试而烦恼吗?🤔 Fiddler We…

张小明 2026/1/9 6:19:04 网站建设

自己造网站lnmp wordpress 伪静态

哔哩下载姬终极指南:从入门到精通的无水印视频下载技巧 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&…

张小明 2026/1/8 17:25:37 网站建设

网站编辑pr的选择应该优先选择的链接为

还记得那个让我困扰的夜晚吗?正在激烈游戏中,笔记本突然变得滚烫,风扇噪音像飞机起飞一样刺耳,而电池却撑不过两小时。作为华硕笔记本用户,我一直在寻找能够真正掌控设备性能的解决方案,直到遇见了G-Helper…

张小明 2026/1/8 23:58:30 网站建设

南通集团网站建设互联网创业平台

第一章:.NET 9 的内存分配优化实践.NET 9 在运行时和编译器层面引入了多项改进,显著提升了内存分配效率,尤其在高吞吐场景下表现突出。通过减少临时对象的生成、优化垃圾回收(GC)频率以及增强 Span 和 ref struct 的使…

张小明 2026/1/8 18:56:55 网站建设