1. 程式人生 > >HDU2050折線分割平面(規律)

HDU2050折線分割平面(規律)

我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。
這裡寫圖片描述

Input
輸入資料的第一行是一個整數C,表示測試例項的個數,然後是C 行資料,每行包含一個整數n(0<.n<=10000),表示折線的數量。

Output
對於每個測試例項,請輸出平面的最大分割數,每個例項的輸出佔一行。

Sample Input
2
1
2
Sample Output
2
7

解題思路:
把畫折線當作畫直線處理即:每畫一條折線,就當作畫兩條直線處理,最後由於兩條直線相交時延長線就不再畫出。所以在兩條直線的基礎上,減去2(折線情況比直線情況少2個部分,見圖)

這裡寫圖片描述

AC程式碼:

#include<stdio.h>
int part(int n)
{
    if(n==1) return 2;
    if(n==2) return 7;
    int sum=2,i;
    for(i=2;i<=n;i++)
    sum+=4*i-3;
    return sum;
}

int main()
{
    int t,i,j;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&i);
        j=part(i);
        printf
("%d\n",j); } return 0; }