日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

vijos p1347(最大乘积(整数划分?))(25—100分)

發(fā)布時(shí)間:2023/12/9 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vijos p1347(最大乘积(整数划分?))(25—100分) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

跟數(shù)的劃分有些類似,遞歸+記憶化搜索,

做過(guò)數(shù)的劃分的人做這道題目應(yīng)該不是很難。

http://www.cnblogs.com/zyxx233/archive/2012/12/08/2809187.html?這是數(shù)的劃分題解

同樣的,我還是以haha來(lái)作為函數(shù).....(個(gè)人癖好)

狀態(tài):haha(s,t,k).

意思是從s到t的數(shù)段中加入k 個(gè)乘號(hào)所能得到的最大值。

所以 ans:=haha(1,n,k).

狀態(tài)的轉(zhuǎn)移:

for i:=1 to t-k-s+1 do

begin

val(copy(st,s,i),m);

if ha[s+i,t,k-1]<>0 then

haha:=max(haha,m*ha[s+i,t,k-1])

else haha:=max(haha,m*haha(s+i,t,k-1));

end;

當(dāng)k=0時(shí) haha即為該數(shù)段的值。

優(yōu)化:同數(shù)的劃分,遞歸的缺點(diǎn)就是有很多重復(fù)的計(jì)算,所以我們可以另開(kāi)一個(gè)三維數(shù)組來(lái)記錄每一次函數(shù)的值,如果再需計(jì)算這個(gè)函數(shù),我們先檢查這個(gè)函數(shù)是否已經(jīng)在數(shù)組里記錄過(guò)了,如

果已經(jīng)記錄,直接調(diào)用數(shù)組,否則再計(jì)算函數(shù)。

1 program p1347; uses math;2 var3 i,j,k,l,m,n,ans:longint;4 st:string;5 ha:array[0..60,0..60,0..6]of int64;6 function haha(s,t,k:longint):int64;7 var8 m,n:int64;9 i,j:longint; 10 begin 11 haha:=0; 12 if k<=0 then 13 begin 14 val(copy(st,s,t-s+1),m); 15 haha:=m; 16 end 17 //else if k<0 then exit(0) 18 else if k>0 then 19 for i:=1 to t-k-s+1 do 20 begin 21 val(copy(st,s,i),m); 22 if ha[s+i,t,k-1]<>0 then 23 haha:=max(haha,m*ha[s+i,t,k-1]) 24 else haha:=max(haha,m*haha(s+i,t,k-1)); 25 end; 26 ha[s,t,k]:=haha; 27 end; 28 begin 29 assign(input,'p1347.in'); 30 reset(input); 31 readln(n,k); 32 readln(st); 33 ans:=haha(1,n,k); 34 write(ans); 35 close(input); 36 end.

今天的題解終于寫(xiě)完了!

轉(zhuǎn)載于:https://www.cnblogs.com/zyxx233/archive/2012/12/08/2809245.html

總結(jié)

以上是生活随笔為你收集整理的vijos p1347(最大乘积(整数划分?))(25—100分)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。