S42106.21-6 分赠花束

传统题 时间 1000 ms 内存 256 MiB 3 尝试 0 已通过 0

21-6 分赠花束

分赠花束

装备选完了,但CC坚持要带一束花——用矿区晶体拼成的花束,送给Echo。

"花束?"CC问。

"对。"你说,"nn朵花,mm个花瓶。花有高度,花瓶有高度。花只能放进不低于它高度的花瓶。"

"每个花瓶一朵?"

"对。"你说,"求最多能放多少朵花,且总美学值最大。"

"美学值?"

"对。"你说,"每朵花放进每个花瓶,有不同的美学值。"

"咋算?"

"动态规划。"你说,"dp[i][j]dp[i][j]表示前ii朵花放进前jj个花瓶的最大美学值。"

"转移?"

"第ii朵花放或不放第jj个花瓶。"你说,"dp[i][j]=max(dp[i][j1],dp[i1][j1]+value[i][j])dp[i][j]=\max(dp[i][j-1],dp[i-1][j-1]+value[i][j])。"

"第47朵花。"你说,"高度47,只能放进高度47\ge 47的花瓶。"

"花瓶够吗?"

"看有多少个高度47\ge 47的。"你说,"如果够,就能放。"

"美学值呢?"

"看具体值。"你说,"不是高度匹配就好看,还要看搭配。"

"搭配?"

"对。"你说,"有些花单独好看,但放一起就不行。"

"像人。"CC说,"有些人单独好,放一起就吵。"

Echo看着那束晶体花——在数学空间的冷光下,折射出彩虹般的颜色。

"好看。"她说。

"送你。"CC说。

"送我?"

"对。"CC说,"你教了我们这么多,送你花。"

"我是投影。"Echo说,"拿不住花。"

"那放着。"CC说,"放着看。"

"好。"Echo说,"放着看。"


题目描述

nn朵花,mm个花瓶。花有高度hih_i,花瓶有高度HjH_j。花ii放进花瓶jj有美学值aija_{ij}。求最多放多少朵花,且总美学值最大。

输入格式

第一行nnmm。接下来nn行每行mm个整数表示美学值。

输出格式

最多放的花数和最大美学值。


输入样例

5 10
3 1 12 3 15

输出样例

240

提示

  • 先按高度排序花和花瓶。
  • DP:dp[i][j]dp[i][j]表示前ii朵花前jj个花瓶的最大价值。
  • 时间复杂度O(nm)O(nm)

在线编程 IDE

建议全屏模式获得最佳体验