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

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

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*n+5*n)/6+1);
    }
return 0;
}

hdu 1290 献给杭电五十周年校庆的礼物,布布扣,bubuko.com

时间: 2024-08-08 22:05:51

hdu 1290 献给杭电五十周年校庆的礼物的相关文章

hdoj 1290 献给杭电五十周年校庆的礼物 【几何模板】

献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7597    Accepted Submission(s): 4145 Problem Description 或许你曾经牢骚满腹 或许你依然心怀忧伤 或许你近在咫尺 或许你我天各一方 对于每一个学子 母校 永远航行在 生命的海洋 今年是我们杭电建校五十周年,

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

解析: 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,三维

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

献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7897 Accepted Submission(s): 4325 Problem Description 或许你曾经牢骚满腹 或许你依然心怀忧伤 或许你近在咫尺 或许你我天各一方 对于每一个学子 母校 永远航行在 生命的海洋 今年是我们杭电建校五十周年,这是一个值得

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

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1290 题目大意: n刀最多可以把一块蛋糕切多少块 题目分析: 假如我们按照立体考虑的话,这题就非常不容易作, 我们的思维是 降低题目的维度. 1.首先我们要明白,蛋糕每多出一个面,就会将这个蛋糕多分出来一块 2.我们一刀下去是一个平面,但是其余的平面会与这个新增的平面相交,会在这个新增的平面上产生n-1条线, n-1条线 最多能把平面分为多少份, 所求的就是我我们新增的平面数,我们就可以求出新增的

8Q - 献给杭电五十周年校庆的礼物

我不能参赛,就送给学校一个DOOM III球形大蛋糕吧.等一等,吃蛋糕之前先考大家一个问题:如果校长大人在蛋糕上切了N刀(校长刀法极好,每一刀都是一个绝对的平面),最多可以把这个球形蛋糕切成几块呢? Input 输入数据包含多个测试实例,每个实例占一行,每行包含一个整数n(1<=n<=1000),表示切的刀数. Output 对于每组输入数据,请输出对应的蛋糕块数,每个测试实例输出一行. Sample Input 1 2 3 Sample Output 2 4 8 // 详见代码 1 #inc

HDU 4907 (杭电BC#3 1001)Task schedule(水)

题目地址:HDU 4907 水题...不多说..哈希后从后往前遍历一遍就行了. 代码如下: #include <iostream> #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <ctype.h> #include <queue> #include <map> #include<a

HDU 4940(杭电多校#7 1006) Destroy Transportation system(瞎搞)

题目地址:HDU 4940 当时这个题一看就看出来了是网络流的最小割,然后就一直在想建图..然后突然发现,应该要让T集合的数目最少,不然只要有两个,那这两个的每一个都可以跑到S集合,使得T集合变小.那就只能是1个了.然后..枚举就好了..但是虽然觉得这么做肯定没错..但是不敢敲..因为当时都3个小时了才只有10个队过了...后来又想了几遍后觉得这样没错,就写完交上了.果然AC... 代码如下: #include <iostream> #include <cstdio> #inclu

HDU 4923 (杭电多校 #6 1003题)Room and Moor(公式+栈)

题目地址:HDU 4923 比赛的时候脑残了..思路完全想出来了..只不过想出了个根本不可能存在的极端数据,然后一看输入数据是100组,就把自己给否决了...sad..当时就应该大胆试一试的... 这个题首先可以把最前面的0和最后面的1去掉,因为这两块总可以用0和1抵消掉.然后中间就分成了10相间的情况,然后根据10相间,可以分成若干组,每一组都是由几个1和几个0组成的.比如说1101101110,就可以分成110,110,1110这样的三组. 然后这时候可以可以对每一组内只取一个数来使得这组的

HDU 4920(杭电多校训练#5 1010 题) Matrix multiplication(不知道该挂个什么帽子。。。)

题目地址:HDU 4920 对这个题简直无语到极点...居然O(n^3)的复杂度能过....方法有三.. 1:进行输入优化和输出优化..(前提是你的输入优化不能太搓...) 2:利用缓存优化..详情请看该论文.大体就是将后两个for循环换过来,让坐标改变的频率降下来. 3:叉姐题解中说的正规方法..利用biset存储,进行预处理..(其实我还没看懂.. 我只写了个第二种...代码如下,共勉..神奇的小代码.. #include <iostream> #include <cstdio>