bzoj3575 Hnoi2014 道路堵塞

2022-05-21 13:15:07 字數 1134 閱讀 8036

(題目鏈結)

給出乙個有向圖和一條最短路,問最短路上任意一條邊斷掉,此時的最短路是多少。

聽說這道題正解被江哥插了。。。右轉題解→_→:lmy學長

平衡樹用堆就可以了。

用棧來存要加入堆中的點,不然不好消除標記。

// bzoj3575

#include#include#include#include#include#include#include#define ll long long

#define inf (1ll<<60)

#define pi acos(-1.0)

#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);

using namespace std;

const int maxn=200010;

int head[maxn],dis[maxn],vis[maxn],st[maxn],in[maxn];

int n,m,l,cnt,id[maxn],ord[maxn],suf[maxn];

struct edge e[maxn<<1];

struct data

};priority_queuet;

inline void link(int u,int v,int w) ;head[u]=cnt;

}inline void spfa(int u,int v,int k)

else if (dis[e[i].to]>dis[x]+e[i].w)

}} for (int i=1;i<=top;i++) );

in[st[i]]=0; }}

int main()

ord[1]=1;

for (int i=1;i<=l;i++) scanf("%d",&id[i]),ord[e[id[i]].to]=i+1;

for (int i=l;i>=1;i--) suf[e[id[i]].from]=suf[e[id[i]].to]+e[id[i]].w;

memset(dis,0x7f,sizeof(dis));dis[1]=0;

for (int i=1;i<=l;i++)

return 0;

}

bzoj3575 Hnoi2014 道路堵塞

一開始看錯題啦!某一條邊不走的最短路相當於1 沿最短路 x y 沿最短路 n,於是 定義t,表示從起點到最短路上序號r有一條長度為l的非最短路。然後用堆維護即可。慎用memset。tle。include include include include include define n 100005 ...

bzoj3575 Hnoi2014 道路堵塞

總趕腳第二題總是比第三題難。好吧,這題一點思路都沒有 聽說用民科可以過掉大部分資料。我們發現刪邊後的路徑一定是這樣的 起點 若干個原最短路徑上的邊 若干個非最短路徑上的邊 若干個原最短路徑上的邊 終點 我們發現其實就是不走原最短路徑上的乙個區間,並且刪除的邊一定在這個區間上 我們按順序列舉邊,然後從...

bzoj3575 最短路 SPFA 道路堵塞

description a國有n座城市,依次標為1到n。同時,在這n座城市間有m條單向道路,每條道路的長度是乙個正整數。現在,a國 交通部指定了一條從城市1到城市n的路徑,並且保證這條路徑的長度是所有從城市1到城市n的路徑中最短的。不幸 的是,因為從城市1到城市n旅行的人越來越多,這條由交通部指定的...