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;
}
该博客围绕2019暑假基础初步训练中的递推问题——折线分割平面展开。根据点和平面关系推出,让每次相交点最多时分割平面数最大。已知不同折线数对应的平面个数和相交点数,得出递推关系式f(n) = f(n - 1) + 4 * (n - 1) + 1,并给出AC代码。
566

被折叠的 条评论
为什么被折叠?



