1.题目:
Problem Description
Input
Output
Sample Input
3 2
4 3
5 6
2012 22
Sample Output
5
8
15
2054
Author
2.思路:
这是一道找规律的题目。具体分析如下:
问题提出:以n边形的n个顶点和它内部的m个点,共(m+n)个点作为顶点,可把原n边形分割成多少个互不重叠的小三角形?
问题探究:为了解决上面的问题,我们将采取一般问题特殊化的策略,先从简单和具体的情形入手:
探究一:以△ABC的3个顶点和它内部的1个点P,共4个点为顶点,可把△ABC分割成多少个互不重叠的小三角形?
如图①,显然,此时可把△ABC分割成3个互不重叠的小三角形.
探究二:以△ABC的3个顶点和它内部的2个点P、Q,共5个点为顶点,可把△ABC分割成多少个互不重叠的小三角形?
在探究一的基础上,我们可看作在图①△ABC的内部,再添加1个点Q,那么点Q的位置会有两种情况:
一种情况,点Q在图①分割成的某个小三角形内部.不妨设点Q在△PAC的内部,如图②;
另一种情况,点Q在图①分割成的小三角形的某条公共边上.不妨设点Q在PA上,如图③.
显然,不管哪种情况,都可把△ABC分割成5个互不重叠的小三角形.
探究三:以△ABC的三个顶点和它内部的3个点P、Q、R,共6个点为顶点,可把△ABC分割成 个互不重叠的小三角形,并在图④中画出一种分割示意图.
探究四:以△ABC的三个顶点和它内部的m个点,共(m+3)个点为顶点,可把△ABC分割成 个互不重叠的小三角形.
探究拓展:以四边形的4个顶点和它内部的m个点,共(m+4)个点为顶点,可把四边形分割成 个互不重叠的小三角形.
问题解决:以n边形的n个顶点和它内部的m个点,共(m+n)个点作为顶点,可把原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;
}