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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jzoj3500-物语【最短路】

發(fā)布時間:2023/12/3 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jzoj3500-物语【最短路】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

正題

題目鏈接:https://jzoj.net/senior/#contest/show/3005/0


題目大意

nnn個點mmm條邊的無向圖,有一條邊的邊權會變化,qqq次變化,每次詢問最短路。


解題思路

可變邊(x,y)(x,y)(x,y)
路徑無非就三種

  • 1?>n1->n1?>n
  • 1?>x?>y?>n1->x->y->n1?>x?>y?>n
  • 1?>y?>x?>n1->y->x->n1?>y?>x?>n
  • 111nnn都跑一次最短路就好了。


    codecodecode

    #pragma GCC optimize(2) %:pragma GCC optimize(3) %:pragma GCC optimize("Ofast") %:pragma GCC optimize("inline") #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<cctype> #define ll long long using namespace std; const ll N=5e5+10; struct edge_node{ll to,next,w; }a[N*2]; struct node{ll pos,dis; }; bool operator<(node x,node y) {return x.dis>y.dis;} ll read() {ll x=0,f=1; char c=getchar();while(!isdigit(c)) {if(c=='-')f=-f;c=getchar();}while(isdigit(c)) x=(x<<1)+(x<<3)+c-48,c=getchar();return x*f; } ll n,m,Q,f1[N],f2[N],ls[N],s,t,tot; bool v[N]; priority_queue<node> q; void addl(ll x,ll y,ll w){a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;a[tot].w=w;return; } void dij(ll s,ll *f){memset(v,0,sizeof(v));q.push((node){s,0});f[s]=0;while(!q.empty()){ll x=q.top().pos;q.pop();if(v[x]) continue;v[x]=1;for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(f[x]+a[i].w<f[y]){f[y]=f[x]+a[i].w;if(!v[y])q.push((node){y,f[y]});}}}return; } int main() {freopen("monogatari.in","r",stdin);freopen("monogatari.out","w",stdout);n=read();m=read();Q=read();for(int i=1;i<=n;i++)f1[i]=f2[i]=1e18;for(ll i=1;i<m;i++){ll x=read(),y=read(),w=read();addl(x,y,w);addl(y,x,w);}dij(1,f1);dij(n,f2);s=read();t=read();while(Q--){ll w=read(),ans=f1[n];ans=min(min(f1[s]+f2[t]+w,f1[t]+f2[s]+w),ans);if(ans>=1e18) printf("+Inf\n");else printf("%lld\n",ans);} }

    總結(jié)

    以上是生活随笔為你收集整理的jzoj3500-物语【最短路】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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