1. 程式人生 > >【題解】平面切割

【題解】平面切割

ios ret stream $2 clu none itl -h 個數

題目描述

設在平面上有n(n≤100)條封閉曲線,而任何兩條封閉曲線恰好相交於兩點,且任何三條封閉曲線不相交於同一點,求這些封閉曲線把平面分割成的區域個數。

輸入輸出格式

輸入格式

一行,一個整數n。

輸出格式

一行,為區域個數。

輸入輸出樣例

輸入樣例

3

輸出樣例

8

題解

第$i$條封閉曲線會與原有的$(i-1)$條封閉曲線交於$2(i-1)$個點,形成$2(i-1)$條弧,每條弧都把對應的$2(i-1)$分成兩份,於是就增加了$2(i-1)$個平面,可得遞推式為$a[i]=a[i-1]+2(i-1)$。

技術分享圖片
#include <iostream>

using namespace std;

int n;
int ans = 2;

int main()
{
    cin >> n;
    for(int i = 1; i < n; i++)
        ans += i * 2 ;
    cout << ans;
    return 0;
}
參考程序

【題解】平面切割