NOIP2013初賽 青蛙

2021-10-11 21:59:10 字數 1464 閱讀 9249

有n片荷葉在池塘上。因為如此這般,有乙隻年輕的青蛙要在荷葉上跳。它是這樣跳的:假如它在第i 號荷葉上,那麼它等概率地跳到1 到i 號的荷葉中的乙個,跳到1 號荷葉結束。求這只青蛙期望跳多少次結束。

一行,乙個整數n,表示青蛙從n 號荷葉開始跳。

一行,乙個實數,保留2 位小數。

sample input 1

5sample input2

sample output1

3.08

sample output2

2.50

40% : 1<= n <= 10:

70% : 1 <= n <= 10000:

100% : 1 <= n <= 20000.

有乙隻青蛙一開始在n

nn,每次等概率的跳到1~當前位置,問跳到位置1的最小步數的期望

首先明白過程可逆,於是就變成了從1到n

設f

if_i

fi​表示跳到i

ii時的期望,那麼

f i=

∑j=1

ifj+

1i

f_i=\dfrac^if_j+1}

fi​=i∑

j=1i

​fj​

+1​fi=

(∑j=

1ifj

)+ii

f_i=\dfracf_j)+i}

fi​=i(

∑j=1

i​fj

​)+i​fi

×i=∑

j=1i

fj+i

f_i\times i=\sum^i_f_j+i

fi​×i=

∑j=1

i​fj

​+i

f i×

(i−1

)=∑j

=1i−

1fj+

if_i\times (i-1)=\sum^_f_j+i

fi​×(i

−1)=

∑j=1

i−1​

fj​+

i f i=

∑j=1

i−1f

j+ii

−1

f_i=\dfrac^f_j+i}

fi​=i−

1∑j=

1i−1

​fj​

+i​​

然後可以預處理f

if_i

fi​的字首和

#include

#define db double

using

namespace std;

int n;

db s,f[

20005];

intmain()

printf

("%0.2f"

,f[n]);

}return0;

}

NOIP2013提高組初賽難點整理

斐波那契數列的定義如下 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 解析 排除法,...

NOIP2013 火柴排隊

題目 分析 a中第幾大一定對應b中第幾大。ab同時移動相當於a移動,相對位置不變。所以,用c i 表示a i 需要移動到的 位置,求其中的逆序對。因為乙個每移動相鄰兩個元素相當於消除乙個逆序對。include include using namespace std const int tmax 10...

模擬 NOIP 2013 花匠

花匠棟棟種了一排花,每株花都有自己的高度。花兒越長越大,也越來越擠。棟棟決定把這排中的一部分花移走,將剩下的留在原地,使得剩下的花能有空間長大,同時,棟棟希望剩下的花排列得比較別緻。具體而言,棟棟的花的高度可以看成一列整數h 1,h 2,h n。設當一部分花被移走後,剩下的花的高度依次為g 1,g ...