题解
2023-07-30 09:06:17
发布于:浙江
#include<bits/stdc++.h>
using namespace std;
struct node{
long long s,e;
}a[110000];
long long n,m,b[110000],t[110000];
queue<node>q;
void f(int start){
for(int i=1;i<=m;i++){
if(a[i].sstart) {
q.push(a[i]);
}
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
int f,t;
scanf("%d%d",&f,&t);
a[i].s=f;
a[i].e=t;
}
int st,en;
scanf("%d%d",&st,&en);
f(st);
while(!q.empty()){
node head=q.front();
if(head.sen){
printf("%d",t[head.s]);
return 0;
}
if(b[head.e]==0){
f(head.e);
b[head.e]=1;
t[head.e]=t[head.s]+1;
}
q.pop();
}
printf("-1");
return 0;
}
全部评论 1
6#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
const int M = 10005;
#define int long long
const int inf = 0x3f3f3f3f3f3f3f3f;
int read()
{
int x=0,2023-08-14 来自 浙江
1不要乱发好吗,官方能撤回吗
2023-08-14 来自 浙江
1
有帮助,赞一个