問(wèn)題來(lái)源:Problem - 2050
Problem Description
我們看到過(guò)很多直線分割平面的題目,今天的這個(gè)題目稍微有些變化,我們要求的是n條折線分割平面的最大數(shù)目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。

Input
輸入數(shù)據(jù)的第一行是一個(gè)整數(shù)C,表示測(cè)試實(shí)例的個(gè)數(shù),然后是C 行數(shù)據(jù),每行包含一個(gè)整數(shù)n(0
Output
對(duì)于每個(gè)測(cè)試實(shí)例,請(qǐng)輸出平面的最大分割數(shù),每個(gè)實(shí)例的輸出占一行。
Sample Input
2
1
2
Sample Output
2
7
思路分析:
????折線的情況看起來(lái)比較復(fù)雜,我們先從直線分隔平面來(lái)入手。
? ? 假設(shè)有n條線時(shí),分隔的平面數(shù)量為F(n)
? ? 假設(shè)原本只有一條直線,把平面分成了兩個(gè)部分。
? ? 當(dāng)加入第二條直線時(shí),與原來(lái)的一條直線最多有1個(gè)交點(diǎn),平面多出了2個(gè)部分;
? ? 當(dāng)加入第三條直線時(shí),與原來(lái)的兩條直線最多有2個(gè)交點(diǎn),平面多出了3個(gè)部分;
? ? 當(dāng)加入第四條直線時(shí),與原來(lái)的三條直線最多有3個(gè)交點(diǎn),平面多出了4個(gè)部分;
????……
? ? 綜上,當(dāng)加入第n條直線時(shí),與原來(lái)的(n-1)直線最多有(n-1)個(gè)交點(diǎn),平面就多出了(n-1)+1【交點(diǎn)數(shù)+1】個(gè)部分,分隔的平面數(shù)量為F(n)=F(n-1)+(n-1)+1
? ? 同理,用于折線分隔平面的情況。
? ? 兩個(gè)折線之間最多有4個(gè)交點(diǎn),因此在加入第n條折線時(shí),與原來(lái)的(n-1)條折線最多有4*(n-1)個(gè)交點(diǎn),平面就會(huì)多出4*(n-1)+1個(gè)部分。
? ?故,推導(dǎo)出,分隔的平面數(shù)量F(n)的遞歸公式為:
代碼如下:
import java.util.Scanner;
public class Test_2050 {
public static void main (String args[]) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
long a[] = new long[10001];
a[1] = 2;
a[2] = 7;
while(n -- != 0) {
int c = in.nextInt();
for(int i=3;i<=c;i++) {
a[i] = a[i-1] + 4 * (i - 1) +1;
}
System.out.println(a[c]);
}
}
}