题目
思路:这题我看dalao都用的是dijkstra或者spa
一开始我看到这个题想用搜索,但不知道是用dfs还是bfs,用了dfs TLE了之后就忘了用bfs再试试,结果打完比赛用bfs过了。。
我爬了
代码如下
#include<bits/stdc++.h>
using namespace std;
const int inf=0x3f3f3f3f;
const int maxn=1e6+5;
typedef long long ll;
int d[maxn];
vector<int>G[maxn];
queue<int>q;
int main()
{
int n,m;
cin>>n>>m;
for(int i=0,u,v;i<m;i++)
{
cin>>u>>v;
G[u].push_back(v);
G[v].push_back(u);
}
memset(d,-1,sizeof(d));
d[1]=0;
q.push(1);
while(!q.empty())
{
int t=q.front();
q.pop();
for(int x:G[t])
{
if(d[x]==-1)
{
d[x]=d[t]+1;
q.push(x);
}
}
}
cout<<d[n]-1;
}