我必须找到左上角条目中包含1的NXM矩阵的数量,所有条目都是整数值,相邻条目最多相差1,知道N最多为5,M可以达到10 ^ 9。显然回溯算法不够快,我认为这个问题可以使用矩阵求幂来解决,但我没有任何进一步的想法。 提前谢谢!
答案 0 :(得分:0)
每一行都采用以下形式:
x (y=x+1/x/x-1) (z=y+1/y/y-1) ...
x的值并不重要,因此(对于N = 5)每行有3 ^ 4 = 81种可能性。
从这里开始编写一个简单的程序,以确定当前行中这81种可能性中的每一种在下一行中出现的频率。
从那里你应该能够找出一个公式,如果有一个简单的,否则你有一个O(10 ^ 9)算法,这至少比你开始时更好。
“最多”和“可以达到”确实搞乱了算法。