P1244 青蛙過河

2022-03-09 07:43:10 字數 1330 閱讀 3990

p1244 青蛙過河

noi2000

主要思想:

數學歸納法 遞推 壓位高精度 化歸

理解能力和找規律的能力

題意再述:

1.青蛙從上到下必須連續遞增或者下面是石墩

而不能是

1 1

2 3

3 4

而且每時每刻都要滿足這個條件

2.左岸和右岸都是石堆

公式推導過程:

k=0h=0 s=1

h=1 s=2 _ _ _

h=2 s=?

當h=1時,共有三個石墩,空石墩有2個,我們可以轉移2個青蛙到任意石墩

當h=2時,總石墩數比原來多1,空石墩有3個,我們可以先利用3個空石墩把上面2個小青蛙(1號和2號)移到乙個非右岸的乙個空石墩上,現在共有2個空石墩,由h=1時

(空石墩有2個,我們可以轉移2個青蛙到任意石墩)

,我把下面兩個大青蛙,移到右岸,再把,小青蛙移到右岸。完成。

假設當h=x,k=0時,空石墩有x+1個,最多能轉移的青蛙數為(1要是k>0呢?

我們知道,當k=0時,轉移的青蛙數為(1結束了???

完美了???

但是這樣只是證明了這種解的存在性,並沒有證明最優性。有想法的和我繼續討論。

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8

#define inf 2147483647

9#define for(i,a,b) for(register long long i=a;i<=b;i++)

10#define p(a) putchar(a)

11#define g() getchar()

12//

by war

13//

2017.10.19

14using

namespace

std;

15long

long

h,k;

16void

in(long

long &x)

1726

while(c<='

9'&&c>='

0')x=x*10+c-'

0',c=g();

27 x*=y;28}

29void o(long

long

x)30

36if(x>9)o(x/10

);37 p(x%10+'0'

);38}39

intmain()

40

view code

洛谷 P1244 青蛙過河

有一條河,左邊乙個石墩 a區 上有編號為1,2,3,4,n的n只青蛙,河中有k個荷葉 c區 還有h個石墩 d區 右邊有乙個石墩 b區 如下圖所示。n只青蛙要過河 從左岸石墩a到右岸石墩b 規則為 1 石墩上可以承受任意多隻青蛙,荷葉只能承受乙隻青蛙 不論大小 2 青蛙可以 a b 表示可以從a跳到b...

luogu整理 P1244 青蛙過河

這個題太騷了。有一條河,左邊乙個石墩 a 區 上有編號為 1,2,ldots n 的 n 只青蛙,河中有 k 個荷葉 c 區 還有 h 個石墩 d 區 右邊有乙個石墩 b 區 如下圖所示。n 只青蛙要過河 從左岸石墩 a 到右岸石墩 b 規則為 你的任務是對於給出的 h,k 計算並輸出最多能有多少只...

青蛙過河問題

青蛙過河是乙個非常有趣的智力遊戲,其大意如下 一條河之間有若干個石塊間隔,有兩隊青蛙在過河,每隊有3 只青蛙,如 圖 10 19所示。這些 青蛙只能向前移動,不能向後移動,且一次只能有乙隻青蛙向前移動。在移動過程中,育蛙可以向 前面的空位中移動,不可一次跳過兩個位置,但是可以跳過對方乙隻青蛙進入前面...