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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ACM/ICPC 之 DP解有规律的最短路问题(POJ3377)

發(fā)布時(shí)間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ACM/ICPC 之 DP解有规律的最短路问题(POJ3377) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

//POJ3377 //DP解法-解有規(guī)律的最短路問題 //Time:1157Ms Memory:12440K #include<iostream> #include<cstring> #include<cstdio> using namespace std;#define MAXN 1000005typedef long long LL;int n; int dp[MAXN][3]; int sr, st, er, ed; int main() {//freopen("in.txt", "r", stdin);while(scanf("%d", &n), n){scanf("%d%d%d%d", &sr,&st,&er,&ed);if(st > ed){swap(st, ed);swap(sr, er);}for(int i = 1; i <= n; i++)scanf("%d", &dp[i][0]);for(int i = 0; i <= n; i++)scanf("%d", &dp[i][2]);for(int i = 1; i <= n; i++)scanf("%d", &dp[i][1]);//更新st從左側(cè)到達(dá)對(duì)岸的最短路for(int i = st, w = 0; i > 0; i--){w += dp[i][0] + dp[i][1]; //間接走陸路的路長和dp[st][2] = min(dp[st][2], w + dp[i-1][2]);if(w >= dp[st][2]) break;}//更新ed從右側(cè)到達(dá)對(duì)岸的最短路for(int i = ed+1, w = 0; i <= n; i++){w += dp[i][0] + dp[i][1];dp[ed][2] = min(dp[ed][2], w + dp[i][2]);if(w >= dp[ed][2]) break;}LL dis[2];dis[sr] = 0; //起始點(diǎn)右移最短路dis[!sr] = dp[st][2]; //對(duì)岸右移最短路for(int i = st + 1; i <= ed; i++){int x = dp[i][sr], y = dp[i][!sr]; //該點(diǎn)與對(duì)岸到達(dá)右一點(diǎn)的路長int z = dp[i][2]; //右側(cè)水路長LL tmp = dis[sr];dis[sr] = min(dis[sr] + x, dis[!sr] + y + z);dis[!sr] = min(dis[!sr] + y, tmp + x + z);}printf("%lld\n", dis[er]);}return 0; }

?

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

總結(jié)

以上是生活随笔為你收集整理的ACM/ICPC 之 DP解有规律的最短路问题(POJ3377)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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