NOIP2014 尋找道路

2022-05-05 17:51:09 字數 1269 閱讀 4264

傳送門

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

看一下**。

#include#include

#include

#include

#include

#include

#include

#define rep(i,a,n) for(int i = a;i <= n;i++)

#define per(i,n,a) for(int i = n;i >= a;i--)

#define pr pair#define mp make_pair

#define fi first

#define sc second

#define enter putchar('\n')

using

namespace

std;

typedef

long

long

ll;const

int m = 100005

;const

int inf = 1000000009

;int

read()

while(ch >= '

0' && ch <= '

9') ans *= 10,ans += ch - '

0',ch =getchar();

return ans *op;

}struct

edge

e[m<<2],e1[m<<2

];int

n,m,head[m],ecnt,dis[m],s,t,head1[m],ecnt1,x,y;

bool

vis[m],pd[m];

queue

q;setq;

set:: iterator it;

void add(int x,int

y)void add1(int x,int

y)void

bfs()

}}void

dij()}}

}int

main()

dij();

if(dis[t] == inf) printf("

-1\n");

else printf("

%d\n

",dis[t]);

return0;

}

NOIP2014 尋找道路

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

noip2014 尋找道路

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

NOIP2014 尋找道路

一張有向圖 長度均為1 輸入格式為x y 表示x和y之間有一條路 給定s和t 求s到t的最短路 要求 路徑上的所有點的出邊所指向的點都直接或間接與終點連通 在這裡點包括3種 1 自己指向的節點都可以到達終點 2 自己可以到達終點的點 3 普通的點 顯然 3包括2 2包括1 這裡要的是由1組成的最短路...