hdu 1290 竭诚为杭州电礼物50周年

专门为杭州电50周年礼事

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 7236    Accepted Submission(s): 3936


Problem Description
也许你以前牢骚满腹
也许你依旧心怀忧伤
也许你近在咫尺
也许你我天各一方

对于每个学子
母校
永远航行在
生命的海洋

今年是我们杭电建校五十周年,这是一个值得祝福的日子。我们该送给母校一个如何的礼物呢?对于眼下的大家来说,最好的礼物当然是省赛中的好成绩,我不能參赛,就送给学校一个DOOM III球形大蛋糕吧,这但是名牌,预计要花掉我半年的银子呢。

想象着正式校庆那一天。校长亲自操刀,把这个大蛋糕分给各地赶来祝贺的校友们,大家一定非常高兴。呵呵。流口水了吧...

等一等。吃蛋糕之前先考大家一个问题:假设校长大人在蛋糕上切了N刀(校长刀法极好,每一刀都是一个绝对的平面),最多能够把这个球形蛋糕切成几块呢?

做不出这个题目。没有蛋糕吃的!
为-了-母-校-,为-了-蛋-糕-(不是为了DGMM。枫之羽最会浮想联翩...),加-油-!


 

Input
输入数据包括多个測试实例。每一个实例占一行,每行包括一个整数n(1<=n<=1000),表示切的刀数。
 

Output
对于每组输入数据。请输出相应的蛋糕块数,每一个測试实例输出一行。


 

Sample Input
1 2 3
 

Sample Output
2 4 8
 

分析:

平面切割空间:
由二维的切割问题可知。平面切割与线之间的交点有关。即交点决定射线和线段的条数。从而决定新增的区域数。

当有n-1个平面时,切割的空间数为f(n-1)。要有最多的空间数,则第n个平面需与前n-1个平面相交,且不能有共同的交线。即最多有n-1 条交线。而这n-1条交线把第n个平面最多切割成g(n-1)个区域。

(g(n)为直线分平面的个数)此平面将原有的空间一分为二。则最多添加g(n-1)个空间。


故:

f=f(n-1)+g(n-1)   (g(n)=n(n+1)/2+1)
=f(n-2)+g(n-2)+g(n-1)
……
=f(1)+g(1)+g(2)+……+g(n-1)
=2+(1*2+2*3+3*4+……+(n-1)n)/2+(n-1)
=(1+2^2+3^2+4^2+……+n^2-1-2-3-……-n )/2+n+1
=(n^3+5n)/6+1


#include<stdio.h>
int main ()
{
    int n;
    while(~scanf("%d",&n))
    {
        printf("%d
",(n*n*n+5*n)/6+1);
    }
return 0;
}



版权声明:本文博客原创文章,博客,未经同意,不得转载。

原文地址:https://www.cnblogs.com/blfshiye/p/4684921.html