The document discusses dynamic programming and its application to solving the longest common subsequence (LCS) problem. It presents the LCS algorithm, which uses dynamic programming to find the length and sequence of the longest subsequence common to two strings X and Y in O(mn) time, where m and n are the lengths of X and Y, respectively. It provides an example running the LCS algorithm on strings X="ABCB" and Y="BDCAB" to determine their longest common subsequence is "BCB".