題解 洛谷P2296 尋找道路

2022-05-24 09:09:09 字數 886 閱讀 4848

思路:

反向建邊,初始化終點可以到達的點並標記,列舉沒被標記的點,把他們到達的點的標記記為0(注意要開乙個新的陣列標記,否則可能會用已修改的點繼續更新)

最後求終點到起點的最短路

**:

#include#include

#include

#include

#include

using

namespace

std;

const

int maxn = 10010,maxm = 200010,inf = 2147483647

;#define makenode(name,uu,dd); node name;name.u=(uu);name.d=(dd);

intn,m,s,t,first[maxn],dis[maxn];

struct

edgee[maxm];

inline

intread()

while(c>='

0'&&c<='9'

)

return x*w;

}int mm=0

;void insert(int u,int

v)int tcan[maxn]=,can[maxn];

void bj(intn)}

void

start()

struct

node

};void

solve()

}}void

print()

intmain()

s=read();t=read();

start();

solve();

print();

return0;

}

洛谷P2296 尋找道路

在有向圖g 中,每條邊的長度均為1 現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件 1 路徑上的所有點的出邊所指向的點都直接或間接與終點連通。2 在滿足條件1 的情況下使路徑最短。注意 圖g 中可能存在重邊和自環,題目保證終點沒有出邊。請你輸出符合條件的路徑的長度。輸入格式...

洛谷 P2296 尋找道路

題目描述 在有向圖g 中,每條邊的長度均為1 現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件 1 路徑上的所有點的出邊所指向的點都直接或間接與終點連通。2 在滿足條件1 的情況下使路徑最短。注意 圖g 中可能存在重邊和自環,題目保證終點沒有出邊。請你輸出符合條件的路徑的長度...

洛谷 P2296 尋找道路

題目大意 在乙個有向圖中找出2點之間的最短路,並且路徑上的所有點的出邊所指向的點都直接或間接與終點連通。題解 spfa 佇列 dfs 1.從終點方向搜,把終點能到的點標記可到達。2.把終點能到達的點的出邊判斷,如果出邊未被標記則狀態更新為不可到達。3.做spfa,若t i 可以到達就做,不然不做。v...