第十一届蓝桥杯A组省赛平面分割


第十一届蓝桥杯A组省赛平面分割_平面分割

比赛的时候我没有想到所以没做出来,今天来补一下。

这是一个递推的题目,首先看一下若干个直线和圆分别来分割平面:

1.直线分割平面

一条直线要怎么样放置才能使得平面被分割为尽可能多的部分?

第十一届蓝桥杯A组省赛平面分割_平面分割_02

如果已经有了直线1,要让你添加一条直线,你会添加相交的还是平行的?

我们可以看到,如果添加直线2(平行),那么只会将直线1的上面部分一分为二;但是如果添加直线3(相交),那么将会将原有的两个部分都一分为二。

所以我们需要让添加的这条直线尽可能多的和原有的直线相交,并且添加的这条直线被分为了多少段,平面就会增加多少个部分。例如上图,在原有直线1的情况下, 加入直线3,那么直线3被切割为了两个部分,上面部分会上平面的上部分(直线1的上方)分割为两个部分,同理也会将平面的下部分(直线1的下方)分割为两个部分。

所以当我们加入第n条直线的时候,第n条直线最多被原有的n-1条直线切割为n段,平面也就最多增加n个部分,所以:

f(n) = f(n-1) + n
= f(n-2) + (n-1) + n
......
= f(1) + 2 + 3 ... + n
= 1 + 1 + 2 + 3 ... + n
= 1 + (n + 1) n / 2

2.原型分割平面

第十一届蓝桥杯A组省赛平面分割_蓝桥杯_03

如图有两个圆形,如果我们已经有了圆形1,要添加一个圆形2,那么是相交还是不相交呢?

我们可以很容易的想到,如果相交的话,那么圆形2会被切割为两段,同直线的切割,平面也就会增加两个部分,而如果是不相交的话,圆形2就相当于只有一段,平面也就只会增加一个部分,所以我们也要让新添加的圆尽可能多的和原有的圆相交。

每和一个圆形相交就会有两个交点,所以加入第n个圆会产生2(n-1)个交点,也就是说这个圆会被切割为2(n-1)个部分,平面也就会增加2(n-1)个部分,所以:

g(n) = g(n-1) + 2(n-1)
= g(n-2) + 2(n-2) + 2(n-1)
......
= g(1) + 2 + 4 ... + 2(n-1)
= 2 + 2 + 4 ... + 2(n-1)
= 2 + (n-1) n

3.20个圆形和20条直线

第十一届蓝桥杯A组省赛平面分割_平面分割_04

如果有m个圆形0条直线,那么平面一共有2 + (m-1) m个部分

f(0) = g(m) = 2 + (m-1) m

这时候我们往其中依次加入直线:

  1. 每次加入一条直线,我们让直线和每一个圆都相交,那么会产生2m个交点,会将直线分为2m-1个线段和两条射线,一共将会新增加2m个部分,也就是说每一条直线加入只考虑原有的圆形的话都会新增加2m个部分,即:
f(1) = f(0) + 2m
= 2 + (m-1) m + 2m
  1. 加入第二条直线,会和所有的圆增加2m个部分,和原有的直线会增加两个部分:
f(2) = f(1) + (2m + 2)

综上可进行推导:

f(n) = f(n-1) + (2m+n)
= f(n-2) + (2m+(n-1)) + (2m+n)
......
= f(1) + (2m+(2)) ... + (2m+n)
= (2 + (m-1) m) + (2mn) + 2 + 3 ... + n
= m^2 - m + 2mn + 1 + n(n+1) / 2

最后将m=20,n=20带入上式即可。

答案是1391


人生没有白走的路,每一步都算数!