递推求解

  今天学习下ACM基础有关递推求解的知识。递推求解问题一般是给定初始值,如N=1,N=2时的情况,然后求解规模很大时的情况。做这种题目需要的是理清题意,然后据此找到规律,写出递推公式,然后求解问题。

  递推求解举例:

  问题一:

  在一个平面上有一个圆和n条直线,这些直线中每一条在圆内同其他直线相交,假设没有3条直线相交于一点,试问这些直线将圆分成多少区域。

  解题思路:根据递推原理,假设前N-1条直线分割成的区域为f(N-1),再添加一条直线时,与其他的N-1条直线形成N-1个交点,确定了N个区域。故

      f(N)=f(N-1)+N;

      初始为f(1)=2;

           有f(N)=N+N-1+N-2+。。。。+2+f(1)=N*(N+1)/2+1;

  问题二:

  平面上有n条折线,问这些折线最多能将平面分割成多少块?

  解题思路:当添加第N条折线时,折线与前N-1条折线的交点为2*2(N-1),可确定4N-3个区域。

       有f(N)=2N*N-N+1;

       注:折线和两直线不同的地方在于折点不能分割平面,分割平面的只有不同折线的交点。

  问题三:

 

  说起佐罗,大家首先想到的除了他脸上的面具,恐怕还有他每次刻下的“Z”字。我们知道,一个“Z”可以把平面分为2部分,两个“Z”可以把平面分为12部分,那么,现在的问题是:如果平面上有n个“Z”,平面最多可以分割为几部分呢?

 

说明1:“Z”的两端应看成射线
说明2:“Z”的两条射线规定为平行的

 

  解题思路:同上,添加一个Z,求交点个数,交点为3*3(N-1)。

  问题四:

  设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。

  解题思路:

 

 

posted @ 2013-04-18 20:18  Pierce1024  阅读(268)  评论(0编辑  收藏  举报