POJ 3597 种类数 数学+递推

http://poj.org/problem?id=3597

题目大意:把一个正多边形分成数个三角形或者四边形,问有多少种方案。

思路:http://www.cnblogs.com/Ritchie/p/5939844.html

然后说一下这个式子的转换。。。md数学果然太差了,花了我好久

U(n)=∑T(i)*T(n-i+1);(2<=i<=n-1)
T(n)=U(n)+∑T(i)*U(n-i+1);(2<=i<=n-2)

因为U(n)=∑T(j)*T(n-j+1);(2<=j<=n-1),  所以 U(n-i+1)=∑T(j)*T(n-j+i) (2<=j<=n-i)

而∑T(j-i+1)*T(n-j+1);(i+1<=j<=n-1)中的j的范围太难看啦,我们需要把j的范围改变到和上面这个式子一样,然后我们就需要修改这个式子了。由于j的范围比较大, 所以我们可以选择"平移",假设j往左边移动-i+1步,所以我们j的范围就变成了2<=j<=n-i,但是为了让原始的val不发生改变,所以∑T(j-i+1)*T(n-j+1);也要发生移动,所以就变成了∑T(j)*T(n-j+i),就可以合并啦。

 

注意:平移的时候要保持两项相加之间的系数和不变,不然所有的转移都是白搭

 

posted @ 2016-10-09 14:52  知る奇迹に  阅读(133)  评论(0编辑  收藏  举报