关注
第一题分两种情况。
首先如果 b > m需要调整到b = m.
1. n < b. 显然答案为0.
2. n >= b. 显然我们总伤害数为n * b. 理论上最大能够打min(m, n * b // a)个木头人。
下面证明确实可以做的到打那么多个。
假设我们理论最大值为k个, 每个为a血, 则我们可以把它排成一个k * a的矩阵,每个元素都为1. 现在我们每一次可以划去不同行中的至多b个1. 那么显然我们可以按照每一列从左往右划去1. 因此一定最终能划完。
而每一行剩余的1的数量代表木头人的血量, 当这个矩阵内所有的1都被划去的时候,就意味着我们可以做到打掉k个木头人。
第二题dp。
设f(i, j)为从[i, j]开始走能得到的最大和值,则可以得出以下转移方程。
f(i, j) = A[i][j] + max{f(i ± k, j ± k) | A[i ± k][j ± k] > A[i][j]}
然后记忆化搜索就可以过了。
查看原帖
4 19
相关推荐
点赞 评论 收藏
分享
03-31 13:20
湖南大学 硬件开发 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习生的蛐蛐区 #
978317次浏览 4912人参与
# 你上一次给父母打电话是什么时候 #
44749次浏览 271人参与
# 27届实习投递记录 #
151388次浏览 1579人参与
# 父母对你找工作是助力还是阻力? #
49075次浏览 413人参与
# 多益网络工作体验 #
73970次浏览 316人参与
# 找工作时的取与舍 #
138962次浏览 925人参与
# 多益网络求职进展汇总 #
108846次浏览 409人参与
# 实习,不懂就问 #
221563次浏览 1723人参与
# 一起聊华为 #
221513次浏览 972人参与
# 薪资一样,你会选择去大厂还是小公司 #
35569次浏览 133人参与
# 实习的内耗时刻 #
242833次浏览 1670人参与
# 发工资后,你做的第一件事是什么 #
107780次浏览 348人参与
# 求职中的尴尬瞬间 #
42402次浏览 125人参与
# 新凯来求职进展汇总 #
82929次浏览 195人参与
# 牛友投递互助,不漏校招机会 #
495566次浏览 5371人参与
# 非技术2024笔面经 #
515129次浏览 5058人参与
# 社会教会你的第一课 #
134471次浏览 874人参与
# 牛友们,签完三方你在忙什么? #
153857次浏览 1026人参与
# 你找工作的时候用AI吗? #
215064次浏览 1032人参与
# 听劝,这个简历怎么改 #
423289次浏览 1901人参与
查看1道真题和解析