码迷,mamicode.com
首页 > 其他好文 > 详细

HDU ACM 1290 献给杭电五十周年校庆的礼物

时间:2015-03-16 21:22:39      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:c++   算法   编程   acm   c   

解析:

1、n条直线把平面分割成的区域数为: f(n)=f(n-1)+n=n(n+1)/2+1;
2、把空间分割为最多区域数的时候,第n个平面与前(n-1)个平面相交,且无三面共线,因此该平面与前(n-1)个平面有(n-1)条交线。这些交线把第n个平面分割为f(n-1)个区域,于是这个平面将原有空间一分为二,增加了f(n-1)个空间,得递推公式:g(n)=g(n-1)+f(n-1)=(n^3+5n)/6+1。

3、这类问题一般都有一个固定的公式,二维的一般是f(x)=a*x^2+b*x+c,三维的一般是f(x)=a*x^3+b*x^2+c*x+d, 用带定系数法求出各个系数就OK了。

#include<iostream>   
using namespace std;

int main()  
{
	int n;

	while(cin>>n)
	{
		cout<<(n*n*n+5*n)/6+1<<endl;
	}
    return 0;  
}


HDU ACM 1290 献给杭电五十周年校庆的礼物

标签:c++   算法   编程   acm   c   

原文地址:http://blog.csdn.net/a809146548/article/details/44311067

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!