分平面问题:

一、n条直线最多分平面问题。

n条直线最多可以把平面分成多少个区域?

此类问题主要采用递归的思想。当有n-1条直线时,平面最多被分成了f(n-1)块区域。如果要使第n条直线分的区域最多,就要让第n条直线与每条直线相交且交点不能重合。这样就会的到n-1个交点,将第n条直线分成了n-2条线段和两条射线。通过观察发现每一条线段或者直线都将其通过的区域一分为2,于是平面就多出了n块区域。

即:

f(n) = f(n-1) + n

= f(n-2) + (n – 1) + n

= f(1) + 2 + 3 + … + n

= n*(n + 1)/2 + 1

二、 n条折线最多分平面问题。

n条折线最多可以把平面分成多少个区域?

类比于直线。当有n-1条折线时,平面最多被分成了f(n-1)块区域。如果要使第n条折线分的区域最多,就让它的两条射线分别与每一条折线的两条射线相交且交点互不重合。这样第n条折线的每条射线上就得到了2(n-1)个交点,将射线分成了2(n-1)条线段和一条射线。但是折角处的两条线段之分出了一块区域,所以一共多出了4(n-1)+1块区域。

即:

f(n) = f(n-1) + 4(n – 1) + 1

= f(n-2) + 4(n – 2) + 4(n – 1) + 2

= f(1) + 4[1 + 2 + … (n-1)] + n

= 2n^2 + n

三、 封闭曲面分平面问题。

设有n条封闭曲线在平面上,任何两条封闭曲线相交于两点,任何三条封闭曲线不相较于一点,问这些封闭曲面把平面分割成的区域个数。

为了简化思考可将封闭曲线看成圆,当有n-1个圆形时将平面分成了f(n-1)块区域。现增加第n个圆,于是此圆的周边上有2(n-1)个点,曲线被分成了2(n-1)个圆弧,每个圆弧可使平面增加一个区域。于是平面增加了2(n-1)个区域。

即:

f(n) = f(n-1) + 2(n – 1)

= f(n-2) + 2(n – 2) + 2(n – 1)

= f(1) + 2[1 + 2 + … + (n – 1)]

= n^2 – n + 2

四、平面分割空间问题。

由类比的方法可以猜出,平面分割空间的个数应该与平面的交线个数有关。于是当有n-1个平面时将空间分成了f(n-1)块区域。增加第n个平面时,另其与每一个平面都有一条交线且每一条交线互不重合互不平行。于是平面上就有了n-1条直线。由问题一可知这些直线一共将次平面分成了n(n-1)/2+1块面,显然每一块面都可使空间多出一块区域。于是空间多出n(n-1)/2+1块区域。

即:

f(n) = f(n-1) + n(n – 1)/2 + 1

= f(n-2) + (n – 2)(n – 1)/2 + n(n – 1)/2 + 2

= f(1) + 1*2/2 + 2*3/2 + 3*4/2 + … + n(n – 1)/2 + (n – 1)

= [(1^2 + 2^2 + … + n^2) – (1 + 2 + … + n)]/2 + n + 1

由平方和公式 1^2 + 2^2 + … + n^2 = n(n + 1)(2n + 1)/6得

f(n) = (n^3 + 5n)/6 + 1

折线分割平面

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

Problem Description

我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目。比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示。

Input

输入数据的第一行是一个整数C,表示测试实例的个数,然后是C 行数据,每行包含一个整数n(0<n<=10000),表示折线的数量。

Output

对于每个测试实例,请输出平面的最大分割数,每个实例的输出占一行。

Sample Input

2
1
2

Sample Output

2
7

Author

lcy

Source

递推求解专题练习(For Beginner)

Recommend

lcy

Statistic | Submit | Discuss | Note

 #include<stdio.h>

 int main()
{
int c;
scanf("%d", &c);
while(c--) {
int n;
scanf("%d", &n);
printf("%d\n", * n * n - n + );
}
return ;
}

HDU2050(分平面问题)的更多相关文章

  1. UVALive 6263 The Dragon and the knights --统计,直线分平面

    题意:给n条直线,将一个平面分成很多个部分,再给m个骑士的坐标,在一个部分内只要有一个骑士即可保护该部分,问给出的m个骑士是不是保护了所有部分. 解法:计算每个骑士与每条直线的位置关系(上面还是下面) ...

  2. 2019 杭电多校第八场 HDU - 6665 Calabash and Landlord 两矩形分平面

    题意 给出两个矩形,问这两个矩形把平面分成了几部分. 分析 不需要什么高级技能,只需 “简单” 的分类讨论. (实在太难写了,对拍找出错误都不想改 推荐博客,其中有个很好的思路,即只讨论答案为2,3, ...

  3. 【分割平面,分割空间类题】【HDU1290 HDU2050】

    HDU 2050 折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  4. hdoj 2050 折线分割平面

    折线分割平面 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Subm ...

  5. hdu2050(递推)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2050 (1) n条直线最多分平面问题 题目大致如:n条直线,最多可以把平面分为多少个区域. 析:可能你 ...

  6. HDU_2050——折线分割平面问题,递推

    Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面 ...

  7. HDU - 2050 - 折线分割平面(数学 + dp)

    题意: 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分 思路: 记住结论.. ...

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

    Description 或许你曾经牢骚满腹或许你依然心怀忧伤或许你近在咫尺或许你我天各一方 对于每一个学子母校 永远航行在生命的海洋 今年是我们杭电建校五十周年,这是一个值得祝福的日子.我们该送给母校 ...

  9. HDU100题简要题解(2050~2059)

    HDU2050 折线分割平面 题目链接 Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以 ...

随机推荐

  1. .NET 拼音检索

    微软提供了一个Visual Studio International Pack 组件,可以转换简繁体,或者将汉字转换为拼音以及其他语言的支持. https://www.microsoft.com/zh ...

  2. 转载:C#中委托、事件与Observer设计模式

    原文地址 http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx 感谢博主分享! 范例说明 假设 ...

  3. Linux 网络配置(固定IP)

    通常linux作为服务器系统时,是不推荐安装图形界面的,因此我们需要掌握非图形界面下如何配置网络,主要两种方式,如下: 一.使用SETUP工具(redhat系列才可以,推荐此修改方式) 1.在命令行直 ...

  4. mysql set names.

    SET NAMES utf8 相当于 SET character_set_client = utf8 --用来设置客户端送给MySQL服务器的数据的 字符集 SET character_set_res ...

  5. 【转】 自定义iOS7导航栏背景,标题和返回按钮文字颜色

    原文:http://blog.csdn.net/mad1989/article/details/41516743 UIBarButtonItem,navigationItem,backBarButto ...

  6. 第10章 PHP异常处理

    1. 抛出一个异常 从PHP5开始,PHP支持异常处理,异常处理是面向对象一个重要特性,PHP代码中的异常通过throw抛出,异常抛出之后,后面的代码将不会再被执行. 既然抛出异常会中断程序执行,那么 ...

  7. JVM调优实践-Tomcat调优

    调优几个重要指标 GC频率 提升每次GC的效率 准备环节 jmeter的配置 未压测前JVM配置 工程未调优前配置 -Xms400m -Xmx400m -XX:PermSize=64m -XX:Max ...

  8. 【转】从头到尾彻底理解KMP

    很好,讲得很清晰,值得学习. 作者:July时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个月从早到晚不断改进. 1. 引言 本KMP原文最初写于2年多前的 ...

  9. 浮点与整形在GUI下的相关思考

    平时不接触绘图,似乎感觉不到浮点和整形所带来的区别,这次项目中意外的碰到了浮点与整形进行迁移的工作.因此写点心得,让自己以后也可以看看. 用浮点作图有个最大的弊端就是边界情况,比如你需要在点(20,2 ...

  10. HTML语义化标签(二)

    为了保证网页去样式后的可读性,并且又符合web标准,应该注意一下几点: 1  尽可能少的使用无语义的标签div和span: 2  在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况 ...