题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2050
折线分割平面,是典型的而有一点难度的递推求解类型的题目,在对这道题的学习中,我开始理解并重复认识了一点,那就是,像如此类型的题目都得从简单的情况分析起,如本题中先得分析最简单的N取1,N取2的情况,。。去探寻发现规律,本题中分析最简单情况时要注意,当N取2时,即两条折线,折线的摆放方法要满足分割平面最多块的要求,观察分析可得,当两折线有四个公共交点时分割平面最多块 ,如图:
对n取任意值时,分割平面数= 交点数 + 顶点数 + 1,我们假设f(n-1)已知,又f(n)每一条拆线与另一条拆线交点为4,则新加第N条拆线交点数增加4*(n-1)
顶点数比f(n-1)多一个,故f(n)=f(n-1)+4*(n-1)+1
代码如下:
#include<iostream>
using namespace std;
int main()
{
int n,c;
cin>>c;
for(int i(0);i<c;i++)
{
cin>>n;
cout<<2*n*n-n+1<<endl;
}
return 0;
}