献给杭电五十周年校庆的礼物
Problem Description
或许你曾经牢骚满腹
或许你依然心怀忧伤
或许你近在咫尺
或许你我天各一方

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

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

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

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

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

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

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

Sample Input

1
2
3

Sample Output

2
4
8

Author
lcy

Source
杭电ACM集训队训练赛(VIII)

Recommend
lcy

这道题要一步一步来的:
(1) n条直线最多分平面问题
题目大致如:n条直线,最多可以把平面分为多少个区域。
析:可能你以前就见过这题目,这充其量是一道初中的思考题。但一个类型的题目还是从简单的入手,才容易发现规律。当有n-1条直线时,平面最多被分成了f(n-1)个区域。则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点。 这样就会得到n-1个交点。这些交点将第n条直线分为2条射线和n-2条线断。而每条射线和线断将以有的区域一分为二。这样就多出了2+(n-2)个区域。
故:f(n)=f(n-1)+n
=f(n-2)+(n-1)+n
……
=f(1)+1+2+……+n
=n(n+1)/2+1

(2) 折线分平面(hdu2050)
根据直线分平面可知,由交点决定了射线和线段的条数,进而决定了新增的区域数。当n-1条折线时,区域数为f(n-1)。为了使增加的区域最多,则折线的两边的线段要和n-1条折线的边,即2*(n-1)条线段相交。那么新增的线段数为4*(n-1),射线数为2。但要注意的是,折线本身相邻的两线段只能增加一个区域。
故:f(n)=f(n-1)+4(n-1)+2-1
=f(n-1)+4(n-1)+1
=f(n-2)+4(n-2)+4(n-1)+2
……
=f(1)+4+42+……+4(n-1)+(n-1)
=2n^2-n+1
(3) 封闭曲线分平面问题
题目大致如设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好相交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。
析:当n-1个圆时,区域数为f(n-1).那么第n个圆就必须与前n-1个圆相交,则第n个圆被分为2(n-1)段线段,增加了2(n-1)个区域。
故: f(n)=f(n-1)+2(n-1)
=f(1)+2+4+……+2(n-1)
=n^2-n+2
(4)平面分割空间问题(hdu1290)
由二维的分割问题可知,平面分割与线之间的交点有关,即交点决定射线和线段的条数,从而决定新增的区域数。试想在三维中则是否与平面的交线有关呢?当有n-1个平面时,分割的空间数为f(n-1)。要有最多的空间数,则第n个平面需与前n-1个平面相交,且不能有共同的交线。即最多有n-1 条交线。而这n-1条交线把第n个平面最多分割成g(n-1)个区域。(g(n)为(1)中的直线分平面的个数 )此平面将原有的空间一分为二,则最多增加g(n-1)个空间。
故:f=f(n-1)+g(n-1) ps: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+23+34+……+(n-1)n)/2+(n-1)
=(1+22+32+42+……+n2-1-2-3-……-n )/2+n+1
=(n^3+5n)/6+1

代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
printf("%d\n",(nnn+5*n)/6+1);
return 0;
}

献给杭电五十周年校庆的礼物相关推荐

  1. HDU1290 献给杭电五十周年校庆的礼物 平面分割空间问题

    点击打开链接 献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Oth ...

  2. HDU1290 献给杭电五十周年校庆的礼物【水题】

    献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

  3. HDU 1290 献给杭电五十周年校庆的礼物(空间分割)

    献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Pr ...

  4. HDOJ 1290 献给杭电五十周年校庆的礼物

    献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

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

    献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

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

    献给杭电五十周年校庆的礼物 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  7. [HDU1290]献给杭电五十周年校庆的礼物

    [HDU1290]献给杭电五十周年校庆的礼物 题目大意: 问\(n(n\le1000)\)个平面能够将一个三维空间分成几部分. 思路: 公式\(\frac{n^3+5n+6}6\). 源代码: #in ...

  8. 杭电OJ——1290 献给杭电五十周年校庆的礼物

    献给杭电五十周年校庆的礼物 Problem Description 或许你曾经牢骚满腹 或许你依然心怀忧伤 或许你近在咫尺 或许你我天各一方 对于每一个学子 母校 永远航行在 生命的海洋 今年是我们杭 ...

  9. HDU 1290:献给杭电五十周年校庆的礼物

    献给杭电五十周年校庆的礼物 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total ...

最新文章

  1. prim算法构建最小生成树
  2. clearcase 创建副本
  3. vbs文件放在java工程中如何调用_Eclipse软件导入Java工程文件的操作方法。
  4. S3C6410的IROM启动模式
  5. Java里面获取当前服务器的IP地址
  6. c++类与类之间关系
  7. react api_使用Java EE 8中的React式API加速服务
  8. 苹果修复三个已遭利用的 iOS 0day
  9. checkout 撤销修改_git命令(10):git 常用操作,撤销修改(2)
  10. StarUML接口视图修改为类的形式
  11. 2021年卡信乐卡盟源码程序
  12. windows C盘自动清理bat脚本
  13. Halcon实现Otsu最大类间方差法
  14. 菜鸟一枚,请大家多多关照
  15. NVIDIA 有奖征文活动合集
  16. 旧服务器系统迁移移到虚拟机,服务器不关机进行虚拟机的迁移,vMotion 迁移
  17. 科技节编程大赛三等奖作品——李白杨
  18. sql sever使用
  19. 西安电子科技大学计算机研一水课答案整理
  20. 【算法基础】高精度除法

热门文章

  1. 如何映射网络驱动器?
  2. 统一身份认证,企业实现统一身份认证有什么好处?
  3. [EDI案例] 法雷奥/Valeo EDI解决方案
  4. 两个苹果手机怎么定位_苹果手机怎么截屏?
  5. 12月20日的贷款结息
  6. 两个整数相乘的java实现
  7. 利用python requests库模拟登陆知乎
  8. fedora26安装flash插件、搜狗拼音、Mysql
  9. 常见基本回测指标(年化收益率,夏普率,最大回撤,β值,α值)的实现
  10. matlab产生单音信号的时域、频域图