分割n边形

来源:互联网 发布:淘宝联盟pid在哪里 编辑:程序博客网 时间:2024/06/07 06:14

1.题目:

Problem Description

以n(n>3)边形的n个顶点和它内部的m(m为正整数)个点,共(m+n)个顶点作为顶点,可把原n边形分割成多少个互不重叠的小三角形?

Input

输入有多组,每行输入n和m,用空格分开

Output

对每组输入数据,输出一行

Sample Input

3 24 35 62012 22

Sample Output

58152054

Author

wqq

 

 

 

2.思路:

       这是一道找规律的题目。具体分析如下:

   

问题提出:以n边形的n个顶点和它内部的m个点,共(mn)个点作为顶点,可把原n边形分割成多少个互不重叠的小三角形?

问题探究:为了解决上面的问题,我们将采取一般问题特殊化的策略,先从简单和具体的情形入手:

 

探究一:以△ABC3个顶点和它内部的1个点P,共4个点为顶点,可把△ABC分割成多少个互不重叠的小三角形?

如图①,显然,此时可把△ABC分割成3个互不重叠的小三角形.

 

探究二:以△ABC3个顶点和它内部的2个点PQ,共5个点为顶点,可把△ABC分割成多少个互不重叠的小三角形?

在探究一的基础上,我们可看作在图①△ABC的内部,再添加1个点Q,那么点Q的位置会有两种情况:

一种情况,点Q在图①分割成的某个小三角形内部.不妨设点Q在△PAC的内部,如图②;

另一种情况,点Q在图①分割成的小三角形的某条公共边上.不妨设点QPA上,如图③.

显然,不管哪种情况,都可把△ABC分割成5个互不重叠的小三角形.

 

探究三:以△ABC的三个顶点和它内部3个点PQR,共6个点为顶点,可把△ABC分割成      个互不重叠的小三角形,并在图④中画出一种分割示意图.

 

探究四:以△ABC的三个顶点和它内部的m个点,共(m3)个点为顶点,可把△ABC分割成        个互不重叠的小三角形.

 

探究拓展:以四边形的4个顶点和它内部的m个点,共(m4)个点为顶点,可把四边形分割成        个互不重叠的小三角形.

 

问题解决:以n边形的n个顶点和它内部的m个点,共(mn)个点作为顶点,可把原n边形分割成        个互不重叠的小三角形.

 

实际应用:以八边形的8个顶点和它内部的2012个点,共2020顶点,可把八边形分割成多少个互不重叠的小三角形?(要求列式计算)

 

答案:

探究三:7.

探究四:3+2(m-1)或者2m+1。

探究拓展::4+2(m-1)或者2m+2。

问题解决:n+2(m-1)或者2m+n-2。

实际应用:把n=8,m=2012代入上述代数式,得:

 2m+n-2=2*2012+8-2=4024+8-2=4030。

 

3.参考代码:

 

 

#include <iostream>using namespace std;int main(){    int n, m;    while (cin >> n >> m) {                    cout << 2 * m + n - 2 << endl;        }    return 0;}