[jdoj1090]矩阵_区间dp

矩阵 jdoj-1910

    题目大意:给你连续的n个矩阵的长和宽,保证每连续的两个相邻矩阵满足相乘的条件,不能改变题目中矩阵的位置,求将这些矩阵相乘为一个矩阵的最小乘法次数。

    注释:1<=n<=500,a,b<=50.定义矩阵A(x,a)和矩阵B(a,y)的乘法次数为x*a*y.

      想法:这题,不会这种算法tm没个写,我连WA三回结果是算法有问题。下面,我来介绍一种动态规划——区间dp

        所谓区间dp,就是在将区间定义为一个变量,然后进行dp。这么说可能有些空洞,我们直接来看这道题。

        首先,我们设状态dp[i][i+len-1]表示从第i个矩阵开始的len个矩阵相乘为一个矩阵的最小乘法次数。我们考虑如何转移。在这里,必须将len枚举在最外层循环,这样的话我们就可以根据小区间来直接更新大区间。这道题的dp转移方程就是

        dp[i][i+len-1]=min(dp[i][i+len-1] , dp[i][j]+dp[j+1][i+len-1]+a[i].x*a[j].y*a[i+len-1].y)。

        这显然是十分好理解的,就是说我枚举这个长度为len的区间的断点,被断点分开的两段区间的长度一定是小于len的,也就是说这两段区间是我们枚举过的。这道题也就迎刃而解了。

      最后,附上丑陋的代码... ...

     小结:背包dp刷完了,开始我的区间dp的魔鬼TwoDays!!

posted @   JZYshuraK_彧  阅读(252)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示