平面分割c (含優化)

2021-09-24 21:33:14 字數 899 閱讀 5891

下面介紹三種方法:

#include

using namespace std;

intf

(int x)

intmain()

上面是遞推的解法

分析如下:

首先,試著寫出n=1,2,3,4的結果:

n=1——2個

n=2——4個

n=3——7個

n=4——11個

遞推規律已經很明顯了,第n個會等於第(n-1)個+n,即 f(n)=f(n-1)+n

下面再介紹遞推的做法:

#include

#include

#include

#include

#include

#include

using namespace std;

#define maxn 1000000

int ans[maxn]

;int

main()

cout<

;return0;

}

下面再給出滾動陣列的優化方法:(因為這是相鄰的傳播,所以用3個數就可以完成遞推)

#include

#include

#include

#include

#include

#include

using namespace std;

#define maxn 1000000

intmain()

;for

(int i=

2;i<=n;i++

) cout<

;return0;

}

平面分割問題

1.題目大致如 n條直線,最多可以把平面分為多少個區域。當有n 1條直線時,平面最多被分成了f n 1 個區域。則第n條直線要是切成的區域數最多,就必須與每條直線相交且不能有同一交點。這樣就會得到n 1個交點。這些交點將第n條直線分為2條射線和n 2條線斷。而每條射線和線斷將以有的區域一分為二。這樣...

折線分割平面

我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩部分,兩條折線最多可以將平面分成7部分,具體如下所示。輸入資料的第一行是乙個整數c,表示測試例項的個數,然後是c 行資料,每行包含乙個整數n 0 n 10000 表示折...

折線分割平面

折線分割平面 time limit 1000ms memory limit 32768kb 64bit io format i64d i64u description 我們看到過很多直線分割平面的題目,今天的這個題目稍微有些變化,我們要求的是n條折線分割平面的最大數目。比如,一條折線可以將平面分成兩...