斐波那契數列的定義如下:f1=
1,f2
=1,f
n=fn
−1+f
(n−2
)(n≥
3)
f_1 = 1, f_2 = 1, f_n = f_ + f_(n - 2) (n \ge 3)
f1=1,
f2=
1,fn
=fn
−1+
f(n
−2)(
n≥3)
。如果用下面的函式計算斐波那契數列的第 n 項,則其時間複雜度為( )。
intf(
int n)
【解析】排除法,遞迴呼叫求斐波那契數列第n現有乙隻青蛙,初始時在 nnn項。該題的遞迴呼叫樹為二叉樹,呼叫次數即二叉樹的結點個數。所以時間複雜度接近o(2
n)
o(2^n)
o(2n
),因此排除o(1
)o(1)
o(1)
、o (n
)o(n)
o(n)
、o (n
2)
o(n^2)
o(n2)。
具體推導過程,可以參考這篇博文。
nn 號荷葉上。當它某一時刻在 k
kk 號荷葉上時,下一時刻將等概率地隨機跳到 1,2
,…,k
1, 2, …, k
1,2,…,
k號荷葉之一上,直至跳到 1
11 號荷葉為止。當 n=2
n = 2
n=2 時,平均一共跳 2
22 次;當 n=3
n = 3
n=3 時,平均一共跳 2.5
2.52.
5次。則當 n=5
n = 5
n=5 時,平均一共跳()次。
【解析】f(n)
表示從1
號荷葉跳到n
號荷葉的平均次數,那麼:
#include
#include
using
namespace std;
const
int size =
100;
int n, m, p, a[size]
[size]
, count;
void
colour
(int x,
int y)
intmain()
ans =0;
for(i =
1;i <= n;i++
)for
(j =
1;j <= m;j++)if
(a[i]
[j]==0)
cout
}
輸入:
6 5 9
1 42 3
2 43 2
4 14 3
4 55 4
6 4
【解析】深度優先遍歷,求連通塊的大小。注意求到矩陣的第m
列即可。
NOIP2013提高組 花匠
花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希望剩下的花排列得比較別緻。具體而言,棟棟的花的高度可以看成一列整數h 1,h 2,h n。設當一部分花被移走後,剩下的花的高度依次為g 1,g ...
NOIP2013提高組解析
題目描述 轉圈遊戲 火柴排隊 貨車運輸 積木大賽 花匠 華容道day1 轉圈遊戲 最終位置實際上就是 x m 10 k n 快速冪即可。include includeusing namespace std int n,m,k,x int power int k int main 火柴排隊 根據感覺可...
NOIP2013提高組 花匠
題目描述 花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希望剩下的花排列得比較別緻。具體而言,棟棟的花的高度可以看成一列整數h 1,h 2,h n。設當一部分花被移走後,剩下的花的高度依次為g...