POJ 1205

来源:互联网 发布:盒子助手软件 编辑:程序博客网 时间:2024/04/29 04:04

这里说一下题意,对于排成一排的N个城市,有一条河与这一排城市平行。

那么城市在排污水的时候,可以有三种选择,用根管子,连到左边的城市(如果有的话),把污水通过这根管子排到左边的城市 。设置这种方式编号为<。

这个城市自己排到河中。编号为|

同样的方式排到右边的城市。编号为?


举例如:

N= 1, 这个城市可以有编号|种排法。

N=2  ||,  |<, >| 种排法


当有K个城的时候,有Ak种排法,当右边增加一个城市的时候,第K+1个城市可以有两种选择<. |

选择 < 的时候,有Ak种排法,左边的K个城市的排法没有改变。

选择|   的时候,有两种情况,第一种与向<边排水没有区别。有Ak种排法。左边的城市排列方法没有改变。

                                        第二种则是左边的情况可以改变。比如第K个城市可以选择向右排>,这时前面的K-1个城市的增加的改变数目是Ak - A(k-1)

所以可以得到A(k+1) = 3 * Ak - A(k-1)

得到递推公式之后,会发现这是一个大数,这里还是用java来写吧。分析就到这里了。




原创粉丝点击