第2題 母牛生小牛

2021-10-04 18:40:14 字數 2099 閱讀 8960

這一題呢,我用了許多種嘗試,剛開始用了遞迴暴力模擬,我想大家都能看懂。

#include

using

namespace std;

unsigned

long

long n;

unsigned

long

longss(

unsigned

long

long x)

intmain()

40分

後面幾個點都tle了

只有unsigned long long呢,它可以將long long負數儲存的那些空間全部挪到存正數的空間裡來。

我加了個記憶化,然後提交

#include

using

namespace std;

unsigned

long

long n,sum[

1010];

unsigned

long

longss(

unsigned

long

long x)

intmain()

60分

後面幾個點都wa了

這很明顯,能推出狀態轉移方程,於是,我推了,還加了個高精。

我的狀態表示是f[i]表示在第i年出生的小牛,到第n年,總共會創造有多少頭奶牛,包括他本生。

#include

using

namespace std;

string dp[

1010];

int x[

510]

,y[510];

string jf

(string a,string b)

l1=a.

size()

;for

(int i=b.

size()

-1;i>=

0;i--

)l2=b.

size()

;for

(int i=

0;i) string s="";

if(y[l1]!=0

)s+=

to_string

(y[l1]);

for(

int i=l1-

1;i>=

0;i--

)s+=

to_string

(y[i]);

return s;

}int

main()

cout<;return0;

}

**出來了,80分,最後2個點tle了

很顯然,狀態狀態轉移方程太複雜。

我們來列個表看看。12

3456

7891

1223

4579

咦,好像有什麼規律呢!

從第4項開始,每項都是前2項和前3項的和,哇!

#include

using

namespace std;

string dp[

1010];

int x[

510]

,y[510];

string jf

(string a,string b)

l1=a.

size()

;for

(int i=b.

size()

-1;i>=

0;i--

)l2=b.

size()

;for

(int i=

0;i) string s="";

if(y[l1]!=0

)s+=

to_string

(y[l1]);

for(

int i=l1-

1;i>=

0;i--

)s+=

to_string

(y[i]);

return s;

}int

main()

這就是ac**

母牛生小牛問題

若母牛從其出生第四年 3周年後 開始每年都會生一頭小 母牛,按這個規律,1頭年齡為 year 的母牛在 futureyear 個年頭後會生幾頭母牛 c code class cow console readkey public cow intyear int futureyear private i...

php演算法 母牛生小牛問題

有一母牛,到4歲可生育,每年一頭,所生均是一樣的母牛,到15歲絕育,不再能生,20歲死亡,問n年後有多少頭牛。遞迴版 論壇裡的 function t n if j 20 return num 非遞迴版 原創 function suanfa n 10 else elseif age 15 elseif...

動態規劃 母牛生小牛問題

一頭剛出生的小母牛,4年後生一頭小母牛,以後每年生一頭,現有一頭剛出生的小母牛,問20年後共有多少頭牛?列舉前n年的情況 1 1 1 2 3 4 6 8 11。將規律抽象成公式 f 1 1 f 2 1 f 3 1 f n f n 1 f n 3 f n 表示第n年共有多少頭牛 f n 1 表示第n ...