51nod1161【组合数学-杨辉三角】

时间:2021-11-16 11:12:39

这个矩阵很清楚,把这个转一转就是一个杨辉三角,
再分析分析就是现在告诉你杨辉三角的第0个斜线数列,然后让你求第K个斜线数列。
这怎么求呢?
那么先拿些杨辉三角的姿势过来:

51nod1161【组合数学-杨辉三角】

好啦,这是一个漂亮的杨辉三角。
然后我们可以看到第0个斜线数列和第K个斜线数列的具体求法——一个组合数。
OK, 我们是求第K个斜线数列:C(k, 0),C(k+1,1),C(k+2, 2)…….C(n+k-1,n-1),
首先很可惜,K很大,但是很显然这个序列能递推,死于:C(N+1, M+1) = C(N, M) * (N + 1) / (N - M + 1)
OK, 现在我有第0个斜线数列具体值怎么求第K个斜线数列啊,怎么求那其实就是对于第0个斜线数列中的每个a[i]会对第K个斜线数列中的每个ans[j]产生多少贡献。
OK, 多少贡献啊, 对于图中的杨辉三角,我们能算出a[0]对于所有ans[j]的贡献,但是a[1]不行,那怎么办呢,把杨辉三角往后移一移,就好了嘛。

ans[j]=i=1j(C(k1+nik1)a[i])