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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

计蒜客 百度地图的实时路况

發(fā)布時間:2024/9/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计蒜客 百度地图的实时路况 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Description

Solution

設(shè) \(solve(l,r)\) 為不經(jīng)過 \([l,r]\) 之間的點的最短路
考慮 \(floyd\) 需要枚舉一個 \(k\) 作為中轉(zhuǎn)站,我們只需要保證 \(k\) 不是 \([l,r]\) 之間的就可以了

具體的我們用 \([l,mid]\) 更新完之后去處理 \(solve(mid+1,r)\),用 \([mid+1,r]\) 更新完之后去處理 \(solve(l,mid)\),就可以答案這個效果了

#include<bits/stdc++.h> using namespace std; const int N=305,inf=707406378; int n,dis[10][N][N];long long ans=0; inline void solve(int l,int r,int t){if(l==r){for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(i!=j && i!=l && j!=l)ans+=(dis[t][i][j]>=inf?-1:dis[t][i][j]);return ;}memset(dis[t+1],127/3,sizeof(dis[t+1]));int mid=(l+r)>>1;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)dis[t+1][i][j]=dis[t][i][j];for(int k=l;k<=mid;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)dis[t+1][i][j]=min(dis[t+1][i][j],dis[t+1][i][k]+dis[t+1][k][j]);solve(mid+1,r,t+1);memset(dis[t+1],127/3,sizeof(dis[t+1]));for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)dis[t+1][i][j]=dis[t][i][j];for(int k=mid+1;k<=r;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)dis[t+1][i][j]=min(dis[t+1][i][j],dis[t+1][i][k]+dis[t+1][k][j]);solve(l,mid,t+1); } int main(){freopen("pp.in","r",stdin);freopen("pp.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){scanf("%d",&dis[0][i][j]);if(dis[0][i][j]==-1)dis[0][i][j]=inf;}solve(1,n,0);cout<<ans<<endl;return 0; }

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

總結(jié)

以上是生活随笔為你收集整理的计蒜客 百度地图的实时路况的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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