核心转化
每次击败一名星能值为 b 的守卫后,你的星能会变为 b+1;下一次挑战的守卫星能值必须不低于当前星能。这等价于要求被击败的守卫星能值形成一个严格递增的序列(若上一个击败的是 v,则当前星能为 v+1,下一名守卫需要 ≥v+1,即严格大于 v)。
区域内自由排序
在一个区域内部,你可以以任意顺序选择守卫进行挑战。为了最大化击败数量,显然应该从星能值较小的守卫开始挑战,这样能让星能增长更加平稳,为击败更多守卫创造机会。因此,将每个区域内的守卫按星能值升序排序不会损失最优解。
跨区域顺序固定
在一个由 n 个区域组成的试炼场中,你是一位星能收集者,初始星能为 1。第 i 个区域中有 ki 名星能守卫,第 j 名守卫的星能值为 bij。你可以按顺序挑战区域,初始位于第 1 个区域。在每个区域中,你可以反复执行以下操作之一,直到无法继续:
1,且你的星能变为 bij+1;1),该操作不可逆。
你的目标是最大化击败的守卫总数。请你计算这个最大值。区域数量 n 不超过 10^4,所有区域的守卫总数不超过 2×10^5,每个守卫的星能值 bij 不超过 10^9。
第一行包含一个整数 n,表示区域数。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.