HDOJ 2050 折线分割平面

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

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

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

Sample Input
2
1
2

Sample Output
2
7

分析:
折线分平面(hdu2050)

解析:根据直线分平面可知,由交点决定了射线和线段的条数,进而决定了新增的区域数。
当n-1条折线时,区域数为f(n-1)。为了使增加的区域最多,
则折线的两边的线段要和n-1条折线的边,即2*(n-1)条线段相交。
那么新增的线段数为4*(n-1),射线数为2。
但要注意的是,折线本身相邻的两线段只能增加一个区域。
故:f(n)=f(n-1)+4*(n-1)+1
f(n-1)=f(n-2) + 4*(n-2)+1
……
f(2)=f(1) + 4*1 + 1
因为,f(1)=2
所以,f(n)=2n^2-n+1

import java.util.Scanner;

public class Main{
    static long[] sLine = new long[10001];
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        SLSP();

        int n = sc.nextInt();
        while(n-->0){
            int m = sc.nextInt();

            System.out.println(sLine[m]);
        }

    }

    private static void SLSP() {
        sLine[0]=1;
        sLine[1]=2;
        sLine[2]=7;
        for(int i=3;i<sLine.length;i++){
            sLine[i] = sLine[i-1]+4*(i-1)+1;
        }
    }

}
时间: 2024-09-21 01:24:30

HDOJ 2050 折线分割平面的相关文章

HDU 2050 折线分割平面:递推

http://acm.hdu.edu.cn/showproblem.php?pid=2050 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Problem Description 我们看到过很多直线分割平面的题目,今天的这个题目稍微有些变化,我们要求的是n条折线分割平面的最大数目.比如,一条折线可以将平面分成两部分,两条折线最多可以将平面分成7部分,具体如下所示. Input 输入

线分割平面与平面分割空间问题

由这一题可以推一类的问题,首先由直线划分区域到折线划分区域,再延伸到封闭图形划分区域, 最后在推广为平面划分空间的问题. (1) n条直线最多分平面问题 题目:n条直线,最多可以把平面分为多少个区域. 解析: 可能你以前就见过这题目,这充其量是一道初中的思考题. 但一个类型的题目还是从简单的入手,才容易发现规律. 当有n-1条直线时,平面最多被分成了f(n-1)个区域. 则第n条直线要是切成的区域数最多,就必须与每条直线相交且不能有同一交点. 这样就会得到n-1个交点.这些交点将第n条直线分为2

【DP专辑】ACM动态规划总结

转载请注明出处,谢谢.   http://blog.csdn.net/cc_again?viewmode=list          ----------  Accagain  2014年5月15日 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力.建模抽象能力.灵活度. 本人动态规划博客地址:http://blog.csdn.net/cc_again/article/category/1261899 ******************

杭电ACM 2000-&amp;gt;2099 100道题 详细解题报告出炉

我去年暑假花了5天,把杭电ACM网站上2000到2099这100道题全AC了,又花了10来天精心写解题报告.里面包括题目.解题思路.编程技巧以及参考源码.所有代码都是使用C/C++写的. 最近整理资料时无意间发现,打包成chm文件和大家分享.我已经上传到CSDN上了.下载地址:http://download.csdn.net/source/492194 也可到我的Google Sites上下载. 题号 题名 题号 题名 2000 ASCII码排序 2001 计算两点间的距离 2002 计算球体积

HDOJ 1418 抱歉(欧拉公式)

Problem Description 非常抱歉,本来兴冲冲地搞一场练习赛,由于我准备不足,出现很多数据的错误,现在这里换一个简单的题目: 前几天在网上查找ACM资料的时候,看到一个中学的奥数题目,就是不相交的曲线段分割平面的问题,我已经发到论坛,并且lxj 已经得到一个结论,这里就不 多讲了,下面有一个类似的并且更简单的问题: 如果平面上有n个点,并且每个点至少有2条曲线段和它相连,就是说,每条曲线都是封闭的,同时,我们规定: 1)所有的曲线段都不相交: 2)但是任意两点之间可以有多条曲线段.

【具体数学 读书笔记】1.2 Lines in the Plane

本节介绍平面划分问题,即n条直线最多把一个平面划分为几个区域(region). 问题描述: "What is the maximum number Ln of regions defined by n lines in the plane?" 这个问题最初由瑞士数学家Jacob Steiner在1826年解决. 延续上一节的解题步骤,即首先关注小规模数据,观察出结果,然后猜测一个递推式并从理论上证明,最后由递推式导出"closed form"(通项式).下面具体整理

k-d tree树 近邻算法

k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构.主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索). 应用背景 SIFT算法中做特征点匹配的时候就会利用到k-d树.而特征点匹配实际上就是一个通过距离函数在高维矢量之间进行相似性检索的问题.针对如何快速而准确地找到查询点的近邻,现在提出了很多高维空间索引结构和近似查询的算法,k-d树就是其中一种. 索引结构中相似性查询有两种基本的方式:一种是范围查询(range searches),另一种是K近邻查询(K

机器学习之k近邻

核心思想 KNN算法假设给定的训练集中的实例都已经分好类了,对于新的实例,根据离它最近的k个训练实例的类别来预测它的类别.即这k个实例大多数属于某个类别则该实例就属于某个类别.比如k为5,离新实例a最近的5个样本的情况为,3个样本属于A类,1个样本属于B类,一个样本属于C类,那么新实例a属于A类. 常用距离 欧氏距离 d(x,y)=∑ni=1(xi−yi)2−−−−−−−−−−−−√ 曼哈顿距离 d(x,y)=∑ni=1|(xi−yi)| 切比雪夫距离 d(x,y)=max(|xi−yi|) k

SVM在车牌字符识别中的应用

1 引言 车牌识别是http://www.aliyun.com/zixun/aggregation/13918.html">智能交通系统的一个重要研究课题,存在巨大的市场需求.车牌识别系统分车辆图像的获取.车牌的定位与字符分割.车牌字符识别3大部分.对于车牌字符识别,目前最常用的方法是基于模板匹配的方法和基于神经网络的方法两大类.前者多利用了字符的轮廓.网格.投影等统计特征,相似字符区分能力差,且因特征数据维数过大会导致识别速度慢:而后者则存在网络输入数据的选择和网络结构设计等问题. 目前