#include <bits/stdc++.h>
using namespace std;
int n,m,q,u,v,a,l;
map<pair<int, int>, bool> con,vis,ans;
bool dfs(int pos, int num)
{
if (vis[{pos, num}] == true) return ans[{pos, num}];
else vis[{pos, num}] = true;
if (pos == 1)
{
for (int i = 2; i <= n; i++)
if (con[{1, i}] == true) return ans[{pos, num}] = (num % 2 == 0);
return ans[{pos, num}] = false;
}
for (int i = 1; i <= n; i++)
if (con[{i, pos}] == true) if (dfs(i, num - 1) == true) return ans[{pos, num}] = true;
return ans[{pos, num}] = false;
}
int main()
{
cin >> n >> m >> q;
while (m--) cin >> u >> v,con[{u, v}] = con[{v, u}] = true;
while (q--)
{
cin >> a >> l;
cout << (dfs(a, l) == true ? "Yes" : "No") << endl;
}
return 0;
}
求助!评测记录。