矩阵中元素的最长递减序列

时间:2014-10-19 01:50:09

标签: algorithm dynamic-programming

我正在尝试解决一个问题,我需要找到大小为n x n的矩阵元素中最长的递减序列,其中序列

  

S =(mi1j1,mi2j2,··,mikjk)

这样

  

ir&lt; ir + 1,jr&lt; jr + 1,和mirjr&gt;对于所有1≤r<1,mir + 1jr + 1 ķ

。我无法想到如何处理这个问题。我需要对它应用动态编程。  任何人都可以给我一个暗示我应该如何解决这个问题。 (因为这是我的HW所以请不要给出确切的解决方案。我正在寻找能够理解这个问题的阅读材料。)

2 个答案:

答案 0 :(得分:1)

动态编程解决方案的想法相当简单,我认为它不需要任何额外的阅读。假设f(i,j)是以(i,j)元素结尾的最长递减序列的长度。如果为所有i,j计算f的值,使得i <1。 ik和j&lt; jk,很容易计算f(ik,jk)。因此可以迭代地计算答案(按i和j的递增顺序)。

答案 1 :(得分:0)

让mi,j = INF-mi,j,其中INF - 非常大的数字:),然后任务是找到最长的增加序列,阅读该博客http://codeforces.com/blog/entry/1412

相关问题