题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2050
解题思路:数学题啊 ,貌似没什么思路啊,杯具啊,搞了好久。这是网上的:http://blog.sina.com.cn/s/blog_76eabc150100swg8.html,这是一种方法。还有一种是:分割平面数 = 交点数+顶点数+1。若我们知道n-1条折线分割平面的最大数f(n-1),要知道f(n),只要知道最大的交点增加数,而顶点数肯定多了1个。根据以上可以推出:f(n) = f(n-1) + 4 * (n-1) +1。
代码如下(根据第二种方法,因为这也是一道递推的题目):
#include<stdio.h>
int main()
{
int c, n, i;
_int64 b[10001] = {0,2,7};
for (i = 3; i < 10001; i++)
b[i] = b[i-1] + 4*(i-1) + 1;
while (scanf("%d",&c) != EOF)
{
for(i = 0; i < c; i++)
{
scanf("%d",&n);
printf("%I64d\n",b[n]);
}
}
return 0;
}

本文详细解析了一道HDOJ的数学递归题目,通过提供一种方法和代码实现,帮助读者理解并解决这类问题。文中包括题目链接、解题思路、代码示例等关键信息。
3373

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



