Número de subseqüências crescentes de comprimento k

Eu estou tentando entender o algoritmo que me dá o número de subseqüências crescentes de comprimento K em uma matriz no tempo O (nklog (n)). Eu sei como resolver este mesmo problema usando o algoritmo O (k * n ^ 2). Eu olhei para cima e descobri que esta solução usa BIT (Fenwick Tree) e DP. Eu também encontrei algum código, mas não consegui entender.

Aqui estão alguns links que visitei e que foram úteis.

Aqui em SO
Fórum Topcoder
Página aleatória

Eu realmente aprecio se alguns puderem me ajudar a entender este algoritmo.

questionAnswers(1)

yourAnswerToTheQuestion