2019暑假训练-基础初步
递推- 折线分割平面
根据点和平面的关系,推出关系式
每多出n个点,平面的个数就会多出n+1个平面。所以只需要让每次相交的点最多,那么分割出来的平面树也就是最大的。
有题目可知,当折线数为1时,平面的个数为2个。当折线数为2时,平面的个数为7个。折线数为1时,相交的点数为0,折线数为2时,相交的点数为4。所以平面的个数增加5个。 可以得到,f(n) = f(n-1) + 4 * (n-1)+1
AC代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[10000];
int main()
{
int n,c;
scanf("%d",&c);
a[1] = 2;
a[2] = 7;
for(int i = 3;i <= 10000;i++)
{
a[i] = a[i-1]+4*(i-1) +1;
}
while(c--)
{
scanf("%d",&n);
printf("%lld\n",a[n]);
}
return 0;
}