`

HDOJ 2050 折线分割平面

 
阅读更多

题目链接: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;
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics