尋找道路(NOIP2014)神奇之題。。

2022-05-16 04:32:29 字數 960 閱讀 1404

原題傳送門

這道題嘛。。

首先根據題目,我們要先知道哪些點能夠到達終點。(反向bfs)

然後我們再求最短路的途中,必須隨時判斷周圍的點是否被第一次bfs標記過。、

所以再來一次bfs。

陣列記得清零,不然會炸。。

下面貼**

#include#include

#include

using

namespace

std;

int n,m,num=0

,s,tt;

int q[20000

];int step[20000

];int head[10001

];bool vis[10001

];int a[200001],b[200001

];struct

edgeg[

400001

];void ins(int u,int

v)void bfs1(int

last)

h++;

}}bool chubian(int

q)bool bfs2(int

first)

q[++t]=g[i].to;}}

return

false;}

intmain()

scanf(

"%d%d

",&s,&tt);

bfs1(tt);

memset(head,

0,sizeof

(head));

memset(g,

0,sizeof

(g));

num=0

;

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

ins(a[i],b[i]);

if(!bfs2(s))printf("

-1\n");

}

NOIP2014 尋找道路

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

noip2014 尋找道路

題目提供者該使用者不存在 標籤圖論2014noip提高組 難度普及 提高 提交該題 討論 題解記錄 在有向圖g 中,每條邊的長度均為1 現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件 1 路徑上的所有點的出邊所指向的點都直接或間接與終點連通。2 在滿足條件1 的情況下使路徑...

NOIP2014 尋找道路

傳送門 這道題還是比較簡單的。我們只要先用老套路建出反圖,記錄終點與哪些點是聯通的,之後從所有不與終點聯通的點出發,在反圖上列舉一下與之直接相連的邊,也設為不能走。之後我們在可以走的路上跑最短路即可。看一下 include include include include include includ...