One Day One Step之平面分割问题
2014-02-20 00:13
393 查看
这几天校集训队集训,在做专题训练。昨天和今天练的是“排序,递归,和贪心”,里面有一道题,是线分割平面个数的,开始不会做,然后经过一番学习之后,终于理解了!特写出来与大家分享!
先来一道简单的吧!
平面内有n条直线,最多能把平面分成及部分。
其实这个问题不难,关键要抓准几个点,而且,这几个点对于这一类”线分割面“的题目是通用的,也就是说,掌握了这几个点的话这一类问题就是很简单的了。
一条直线如果要想把一个平面分割成最多的平面数,就必须与其他原来的直线都有一个交点(这里之所以是说直线是以为后面还有折线和弧线的情况)。
一条新的线能够把原来的平面分成的平面数取决于原来的平面数,以及这条线被与原来的线相交的点分割成的线段或者是射线的条数,即:第n条直线将平面分割的平面数=
原来即第(n - 1)条直线将平面分割的平面数 +第n条直线被相交点分割成的线段或者射线数或者说第n条直线与其余(n - 1)条线相交的点数加上2(两点确定一条直线以及首尾的两条射线线)
。
所以,我们现在就把问题归结为线与其他线相交的最多点数。根据第一点所说的,第n条直线最多能与其余的(n - 1)条直线有(n - 1)个交点。于是我们可以得到一个递推关系式:
F(n ) = F( n – 1 ) +(n + 1),其中,F(1) = 2。
解得:F(n) = ( n * n + n ) / 2 + 1。
接下来里一个问题:
一个圆弧与另外一个圆弧相交且有且只有2个交点,而且所有交点都不会重合,问n个相交圆弧能将平面分割成几个分割平面。
要解决这个问题还是得按照我们上面的讨论,即第n条圆弧能与其余(n - 1)条圆弧相交几个点!答案比较简单,因为题目已经说了,每个圆弧与其他圆弧有两个交点,所以,第(n - 1)条圆弧总共能有2
* (n- 1)个交点!但是,与上面的题目不同的是,这里是圆弧,所以两个点能产生两段新的圆弧,所以,综上:
F(n)= F(n-1) + 2 *(n-1),其中,F(1) = 2。
解得:F(n) = n * n – n + 2。
接下来是最后一个问题:
一条折线能够将一个平面分成两块,问n条折线能够将平面分成几个分割平面。
我们还是按照前面的方法来,不过有一点不一样,那就是,折线我们可以看成是两条线段构成的,所以,第n条折线的两条线段的每一条都能与其余的(n-1)条折线的两条线段有2 *(n
– 1)个交点,所以总共有4* (n - 1)个交点,能够组成4 *(n - 1)条线段和2条是射线,但是,由于这些线段中有两条适合在一起成为一个角的,所以,线段的数量要减去1。
综上:
F(n)= F(n-1) + 2 + 4 *(n - 1)- 1。
解得:F(n) = 2 * n * n – n + 1!
先来一道简单的吧!
平面内有n条直线,最多能把平面分成及部分。
其实这个问题不难,关键要抓准几个点,而且,这几个点对于这一类”线分割面“的题目是通用的,也就是说,掌握了这几个点的话这一类问题就是很简单的了。
一条直线如果要想把一个平面分割成最多的平面数,就必须与其他原来的直线都有一个交点(这里之所以是说直线是以为后面还有折线和弧线的情况)。
一条新的线能够把原来的平面分成的平面数取决于原来的平面数,以及这条线被与原来的线相交的点分割成的线段或者是射线的条数,即:第n条直线将平面分割的平面数=
原来即第(n - 1)条直线将平面分割的平面数 +第n条直线被相交点分割成的线段或者射线数或者说第n条直线与其余(n - 1)条线相交的点数加上2(两点确定一条直线以及首尾的两条射线线)
。
所以,我们现在就把问题归结为线与其他线相交的最多点数。根据第一点所说的,第n条直线最多能与其余的(n - 1)条直线有(n - 1)个交点。于是我们可以得到一个递推关系式:
F(n ) = F( n – 1 ) +(n + 1),其中,F(1) = 2。
解得:F(n) = ( n * n + n ) / 2 + 1。
接下来里一个问题:
一个圆弧与另外一个圆弧相交且有且只有2个交点,而且所有交点都不会重合,问n个相交圆弧能将平面分割成几个分割平面。
要解决这个问题还是得按照我们上面的讨论,即第n条圆弧能与其余(n - 1)条圆弧相交几个点!答案比较简单,因为题目已经说了,每个圆弧与其他圆弧有两个交点,所以,第(n - 1)条圆弧总共能有2
* (n- 1)个交点!但是,与上面的题目不同的是,这里是圆弧,所以两个点能产生两段新的圆弧,所以,综上:
F(n)= F(n-1) + 2 *(n-1),其中,F(1) = 2。
解得:F(n) = n * n – n + 2。
接下来是最后一个问题:
一条折线能够将一个平面分成两块,问n条折线能够将平面分成几个分割平面。
我们还是按照前面的方法来,不过有一点不一样,那就是,折线我们可以看成是两条线段构成的,所以,第n条折线的两条线段的每一条都能与其余的(n-1)条折线的两条线段有2 *(n
– 1)个交点,所以总共有4* (n - 1)个交点,能够组成4 *(n - 1)条线段和2条是射线,但是,由于这些线段中有两条适合在一起成为一个角的,所以,线段的数量要减去1。
综上:
F(n)= F(n-1) + 2 + 4 *(n - 1)- 1。
解得:F(n) = 2 * n * n – n + 1!
相关文章推荐
- 直线,折线,封闭曲线,平面分割区域问题
- hdu2050and1290 ,平面和空间的分割问题
- 关于直线、折线分割平面,平面的分割空间问题
- 平面分割问题
- 各种平面分割问题总结(转)
- XYNUOJ 平面分割问题
- 平面分割问题
- 折线分割平面问题总结
- HDU_2050——折线分割平面问题,递推
- One Day One Step 之全错位排序
- One Day One Step 之Palindromic Squares
- 直线,折线,曲线分割平面以及平面分割空间问题
- HDU--2050 折线分割平面问题
- 分割平面问题
- Algorithm One Day One -- 约瑟夫环(丢手绢问题)
- 折线分割平面问题
- 平面分割问题
- One Day One Step 之Dual Palindromes
- 分割平面问题
- 平面分割,空间分割问题(递推关系)(hdu1249、hdu1290、hdu2050)