求去的路徑與回來的路徑和
1 ≤n
,m
≤1000000
1 \le n,m \le 1000000
1≤n,m≤
1000
000最短路
對於第一次碰到這種模型的oiers,這個地方可以講講的。
顯然我們可以暴力跑n遍最短路。但是我們可以這麼想:我們出去是從乙個點到所有其他點,那麼我們能回來也從乙個點到所有其他點嗎?答案顯然是可以的。我們只要反向存邊,正著跑一邊,倒著跑一邊就好了。
別忘了開long long啊
#include
#include
#include
#define ll long long
#define inf 1e9f
#define maxn 1000100
using
namespace std;
inline ll read()
while
(c>=
'0'&&c<=
'9')k=
(k<<1)
+(k<<3)
+(c^48)
,c=getchar()
;return f*k;
}struct edge
z[maxn]
,f[maxn]
;ll cnt_z,cnt_f,n,m,ans;
ll head_z[maxn]
,head_f[maxn]
,dis[maxn]
;bool vis[maxn]
;void
add_z
(ll u,ll v,ll w)
void
add_f
(ll u,ll v,ll w)
void
spfa_z()
}}}for
(ll i=
1;i<=n;i++
)ans+
=dis[i];}
void
spfa_f()
}}}for
(ll i=
1;i<=n;i++
)ans+
=dis[i];}
intmain()
spfa_z()
;spfa_f()
;printf
("%lld"
,ans)
;return0;
}
郵遞員送信(弱化版 / 雙倍經驗) 洛谷 P1342 請柬
這道題很適合作為p1629的加強版 因為這道題其實體現了反向建圖的高效性 反向建圖後 單終點最短路徑 單源最短路徑。因此兩邊dij,然後再累計和即可 部分不難弄。直接上 先說明以下程式,有1的變數名與第一次dij有關 學生出來 帶2的與第二次dij有關 學生回家 include include in...
洛谷P1342請柬
核心思想 兩遍最短路.1號點去各地的時間直接套最短路模板,各地到1號點時間用逆向思維,視為求1號點沿反邊到各地的時間即可.include include include include include define re register using namespace std const int ...
洛谷 P1342 請柬
在電視時代,沒有多少人 戲劇表演。malidinesia古董喜劇演員意識到這一事實,他們想宣傳劇院,尤其是古色古香的喜劇片。他們已經列印請帖和所有必要的資訊和計畫。許多學生被雇來分發這些請柬。每個學生志願者被指定乙個確切的公共汽車站,他或她將留在那裡一整天,邀請人們參與。這裡的公交系統是非常特殊的 ...