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 #include8view code#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
洛谷 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所示。這些 青蛙只能向前移動,不能向後移動,且一次只能有乙隻青蛙向前移動。在移動過程中,育蛙可以向 前面的空位中移動,不可一次跳過兩個位置,但是可以跳過對方乙隻青蛙進入前面...