1 条题解
-
0
#include <bits/stdc++.h> #define ll long long using namespace std; const int N=100005; int n,m,k,s,t,qq,d[N][2]; vector<int> e[N]; queue<pair<int,int>> q; void spfa(){ memset(d,0x3f,sizeof(d)); d[1][0]=0; q.push({1,0}); while (!q.empty()){ int x=q.front().first; int y=q.front().second; q.pop(); for (int &v:e[x]){ if (d[v][y^1]>d[x][y]+1){ d[v][y^1]=d[x][y]+1; q.push({v,y^1}); } } } } int main(){ // freopen("in.txt","r",stdin); // freopen("out.txt","w",stdout); ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n>>m>>qq; for (int i=1;i<=m;++i){ cin>>s>>t; e[s].push_back(t); e[t].push_back(s); } spfa(); while (qq--){ cin>>s>>t; cout<<(d[s][t&1]<=t?"Yes\n":"No\n"); } }
- 1
信息
- ID
- 808
- 时间
- 1000ms
- 内存
- 250MiB
- 难度
- 10
- 标签
- 递交数
- 7
- 已通过
- 3
- 上传者