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

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

生活随笔

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

编程问答

UOJ #592. 投放点的选择

發(fā)布時(shí)間:2024/4/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UOJ #592. 投放点的选择 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【題目描述】: ZL王國(guó)有一條母親河,沿河有N個(gè)農(nóng)莊,ZL王國(guó)的農(nóng)產(chǎn)品都是出產(chǎn)自這N個(gè)農(nóng)莊。為了抵制黑心的農(nóng)販子,這次ZL國(guó)王決定由王國(guó)統(tǒng)一收購(gòu),并給出了讓農(nóng)戶非常滿意的價(jià)格,甚至國(guó)王還下旨運(yùn)輸路費(fèi)王國(guó)報(bào)銷。這N個(gè)農(nóng)莊主非常高興,決定滿載貨船趕往收購(gòu)點(diǎn)。可是王國(guó)的國(guó)庫(kù)空虛,勉強(qiáng)夠收購(gòu)農(nóng)產(chǎn)品,至于建臨時(shí)收購(gòu)點(diǎn)和報(bào)銷運(yùn)輸費(fèi)的錢……ZL國(guó)王拿出了自己的私房錢,含淚對(duì)著你說(shuō):“萬(wàn)能的IOer,請(qǐng)你幫我算算選擇哪些農(nóng)莊建立收購(gòu)點(diǎn),可以讓我出最少的錢。”ZL國(guó)王遞給你一個(gè)表格,上面記錄了,相鄰農(nóng)莊運(yùn)輸?shù)馁M(fèi)用以及在不同農(nóng)莊建立臨時(shí)收購(gòu)點(diǎn)的費(fèi)用。簡(jiǎn)易題面:N個(gè)農(nóng)莊(1~N)在一條線上,依次給定相鄰農(nóng)莊間運(yùn)輸費(fèi)用和在不同農(nóng)莊建立臨時(shí)收購(gòu)點(diǎn)的費(fèi)用,總費(fèi)用即每個(gè)農(nóng)莊前往運(yùn)輸費(fèi)用最少的收購(gòu)點(diǎn)和所有收購(gòu)點(diǎn)建立費(fèi)用之和。)【輸入描述】: 第一行包含1 個(gè)正整數(shù)n。第二行包含n 個(gè)自然數(shù),依次表示N個(gè)農(nóng)莊建立收購(gòu)點(diǎn)的代價(jià)cost。以下n-1 行每行一個(gè)整數(shù)w,依次表示在農(nóng)莊i和i+1間運(yùn)輸費(fèi)用w。【輸出描述】: 輸出1 個(gè)整數(shù),表示最小代價(jià)。【樣例輸入】: 8 1 3 3 8 5 5 4 4 3 1 9 9 9 8 0 【樣例輸出】: 27 【樣例說(shuō)明】: 樣例中在1、2、4、5、6、7建立收購(gòu)點(diǎn)。【時(shí)間限制、數(shù)據(jù)范圍及描述】: 時(shí)間:1s 空間:512M30%的數(shù)據(jù):n≤10;70%的數(shù)據(jù):n≤500;100%的數(shù)據(jù):1≤n≤5000;0≤w,cost≤5000;本題可以設(shè)f[i]為以i為最后一個(gè)收購(gòu)點(diǎn)的最小花費(fèi),然后狀態(tài)轉(zhuǎn)移方程就可以寫為f[i]=f[j]+W(j,k)+W(k,i) 注意:這里j為上一個(gè)收購(gòu)點(diǎn)的位置,k為滿足dis[j][k]<dis[k][i]的最后一個(gè)k的位置. 另外,k如果枚舉的話會(huì)超時(shí),所以還是尺取大法好.Code: #include<iostream> #include<cstdio> #include<cstring> #include<queue> #include<algorithm> #include<ctime> using namespace std; const int N=5005; int n; long long f[N],ans,cost[N],dis[N][N],sum; int main(){scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%lld",&cost[i]);}for(int i=2;i<=n;i++){scanf("%lld",&dis[i-1][i]);f[i]=dis[i-1][i];}for(int i=1;i<n;i++){for(int j=i+2;j<=n;j++){f[j]+=dis[i][j]=dis[i][j-1]+dis[j-1][j];}}f[1]=cost[1];for(int i=2;i<=n;i++){long long l=0,r=f[i]-dis[1][i];for(int j=1,k=2;j<i;j++){while(dis[j][k]<dis[k][i]){l+=dis[j][k];r-=dis[k][i];k++;}if((f[j]+l+r)<f[i]){f[i]=f[j]+l+r;}l-=dis[j][j+1]*(k-(j+1));}f[i]+=cost[i];}ans=f[n];for(int i=n-1;i>=1;i--){sum+=dis[i][n];if(f[i]+sum<ans){ans=f[i]+sum;}}printf("%lld\n",ans);return 0; }

轉(zhuǎn)載于:https://www.cnblogs.com/ukcxrtjr/p/11577787.html

總結(jié)

以上是生活随笔為你收集整理的UOJ #592. 投放点的选择的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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