[AGC039F]Min Product Sum

这篇博客探讨了如何解决AGC039F问题,即求解矩阵A和B中每个位置上当前行与当前列所有数的最小值乘积。通过动态规划策略,设计了一个与矩阵行和列相关的dp状态,并详细解释了状态转移过程。文章还提供了源代码作为解决方案的实现。
摘要由CSDN通过智能技术生成

Min Product Sum

题解

首先,它是要求每个位置上当前行与当前列所有数的最小值的乘积。
我们不妨把它给转化一下,我们现在要对一个矩阵 A A A和矩阵 B B B进行赋值,要求矩阵 B B B上的数不大于 A A A上相同行与相同列上的数。
我们现在得设计一个 d p dp dp状态来对它进行转移,先观察一下我们填数有什么性质。
显然,当 A A A中的某行或某列填了数后, B B B中该行或该列就不能再填数了,同样, A A A也只能在某行或某列是满的情况下在这行或者列上填数。
我们的 d p dp dp状态最好关联到两个矩阵与每行每列,不妨就来定义 d p i , j , k dp_{i,j,k} dpi,j,k表示现在枚举到数 i i i,已经 B B B中已经有 j j j行填满了, A A A中有 k k k列填了数。
我们转移这个状态就可以去枚举在 i i i的时候,新填满了几行,开始填了几列。
我们先枚举 B B B中填的行,如果现在我们新填了一行,我们可以确定两点:

  • 该行上, A A A中还没有填数的列在网格 B B B上可以自由选择 [ 1 , i ] [1,i] [1,i]填充。
  • 该行上, A A A中已经填了数的列在网格 A A A上可以自由选择 [ i , K ] [i,K] [i,K]</
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值