【问题标题】:Dynamic Programming Solution- How to solve? (Point me in the right direction)动态规划解决方案 - 如何解决? (指出我正确的方向)
【发布时间】:2011-11-14 03:10:36
【问题描述】:

我有一个来自 USACO 的关于动态规划的问题。 (学习计算机科学)。

问题文本位于此处:http://pastebin.com/MiJ5aEWc

我在想这可能类似于 Max Inc 子序列,但有人能指出我正确的方向吗?

谢谢!

【问题讨论】:

  • 这是最近考试的吗?
  • 不,我昨天确实参加了铜牌比赛。这真的很容易! :D

标签: c++ algorithm dynamic-programming


【解决方案1】:

是的。可以在 O(n log n) 内求解,动态规划:
首先按 x 坐标对奶牛进行排序,并将品种类型映射到整数 [1..k]。 (k 定义 dp[i] = 最大索引 j 使得从第 j 头奶牛到第 i 头奶牛出现所有品种,如果不存在则为 -1。
因为对于每个 k dp[i]

【讨论】:

  • 我对 dp[i] range [d , i] 周围的符号感到困惑。你能解释一下这是什么意思吗? (也许会扩大那部分?)
  • 已编辑;可接受的范围 [a,b] 表示奶牛的范围包含所有类型的品种。
  • 对不起,打扰你了,如果你愿意,你可以停止评论,但是既然dp[i]等于最大的第j头牛,那么“i dp[i]
  • 那些 i,j 在另一个作用域,你可以用 x 和 y 替换它们:x dp[x]
猜你喜欢
  • 1970-01-01
  • 2014-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-25
  • 1970-01-01
相关资源
最近更新 更多