hdu 1290 切糕

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1290

思路:

n条直线最多能将一个平面分成几个区域
其递推公式即为:f(n)=f(n-1)+n;
递推一下,就得到f(n)=1/2*(n*n+n)+1;

n个平面最多能将一个空间分成几个区域
递推公式即为:g(n)=g(n-1)+f(n-1);
递推一下,就得到通项公式:g(n)=(n*n*n+5*n+6)/6;

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cmath>
 4 #include <cstdlib>
 5 #include <ctime>
 6 #include <iostream>
 7 #include <algorithm>
 8 #include <vector>
 9 #include <queue>
10 #include <map>
11 #include <set>
12 #include <string>
13
14 using namespace std;
15
16 int main()
17 {
18     __int64 n;
19     while(scanf("%I64d",&n)!=EOF)
20     {
21         printf("%I64d\n",(n*n*n+5*n+6)/6);
22     }
23     return 0;
24 } 
时间: 2024-10-29 13:13:20

hdu 1290 切糕的相关文章

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 或许你曾经牢骚满腹 或许你依然心怀忧伤 或许你近在咫尺 或许你我天各一方 对于每一个学子 母校 永远航行在 生命的海洋 今年是我们杭电建校五十周年,

hdu 1290

决定认真做一下递推类型的题,只是搜一下题解看完不会有任何提升. 献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 8344    Accepted Submission(s): 4619 Problem Description 或许你曾经牢骚满腹或许你依然心怀忧伤或许你近在咫尺或许你我天各一方 对于每一个学子母校

hdu1290

由二维的分割问题可知,平面分割与线之间的交点有关,即交点决定射线和线段的条数,从而决定新增的区域数. 当有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

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

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

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,三维

HDU分类

模拟题, 枚举 1002 1004 1013 1015 1017 1020 1022 1029 1031 1033 1034 1035 1036 1037 1039 1042 1047 1048 1049 1050 1057 1062 1063 1064 1070 1073 1075 1082 1083 1084 1088 1106 1107 1113 1117 1119 1128 1129 1144 1148 1157 1161 1170 1172 1177 1197 1200 1201 12

hdu 1558 线段相交+并查集路径压缩

Segment set Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3457    Accepted Submission(s): 1290 Problem Description A segment and all segments which are connected with it compose a segment set.

hdu 1284 钱币兑换问题 (递推 || DP || 母函数)

钱币兑换问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5069    Accepted Submission(s): 2868 Problem Description 在一个国家仅有1分,2分,3分硬币,将钱N兑换成硬币有很多种兑法.请你编程序计算出共有多少种兑法. Input 每行只有一个正整数N,N小于32768. Outpu

hdu 1267 下沙的沙子有几粒? (递推)

下沙的沙子有几粒? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2584    Accepted Submission(s): 1346 Problem Description 2005年11月份,我们学校参加了ACM/ICPC 亚洲赛区成都站的比赛,在这里,我们获得了历史性的突破,尽管只是一枚铜牌,但获奖那一刻的激动,也许将永远铭刻