這一題呢,我用了許多種嘗試,剛開始用了遞迴暴力模擬,我想大家都能看懂。
#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 ...