HDOJ 2050 折线分割平面

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

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;
        }
    }

}
目录
相关文章
hdoj 1907
这是一道博弈的题,准确说是尼姆博弈,只要判断各项的异或值即可。
35 0
HDOJ 2033 人见人爱A+B
HDOJ 2033 人见人爱A+B
154 0
|
机器学习/深度学习
HDOJ 2074 叠筐
HDOJ 2074 叠筐
118 0
HDOJ 1412 {A} + {B}
HDOJ 1412 {A} + {B}
117 0
HDOJ的题目分类
模拟题, 枚举 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 ...
1827 0
HDOJ 2057 A + B Again
Problem Description There must be many A + B problems in our HDOJ , now a new one is coming.
901 0
|
测试技术
HDOJ 2046 骨牌铺方格
Problem Description 在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数. 例如n=3时,为2× 3方格,骨牌的铺放方案有三种,如下图: Input 输入数据由多行组成,每行包含一个整数n,表示该测试实例的长方形方格的规格是2×n (0 import java.
712 0
|
人工智能
HDOJ 2019 数列有序!
Problem Description 有n(n
821 0
|
存储 Java
HDOJ 2602
Bone Collector Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 14134    Accepted Submission(s...
934 0
|
人工智能 Java 测试技术
HDOJ 3784
继续xxx定律 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1238    Accepted Submission(s): 341 Problem Description 当n为3时,我们在验证xxx定律的过程中会得到一个序列,3,5,8,4,2,1,将3称为关键数,5,8,4,2称为覆盖数。
849 0