来不及调了大佬帮看
#include <iostream>
#include <queue>
#include <vector>
#include <cstring>
using namespace std;
int n,m,k,dis[100005][2],vis[100005][2];
vector<int> g[100005];
void bfs(int cur){
queue<pair<int,int> > q;
memset(dis,0x3f,sizeof(dis));
memset(vis,0,sizeof(vis));
q.push({1,0});
dis[cur][0]=0;
vis[cur][0]=1;
while (!q.empty()){
int v=q.front().first;
int d=q.front().second;
q.pop();
for (int i=0;i<g[v].size();i++){
if (!vis[g[v][i]][1-d%2]){
dis[g[v][i]][1-d%2]=dis[v][d]+1;
vis[g[v][i]][1-d%2]=1;
q.push({g[v][i],1-d%2});
}
}
}
}
int main(){
cin>>n>>m>>k;
for (int i=1;i<=m;i++){
int x1,x2;
cin>>x1>>x2;
g[x1].push_back(x2);
g[x2].push_back(x1);
}
while (k--){
int x1,x2,x3;
cin>>x1>>x2>>x3;
bfs(x1);
if (x3>=dis[x2][x3%2]&&(x2-dis[x1][x2%2]%2)==0) cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
球球帮助蒟蒻一下吧