求助!0分
查看原帖
求助!0分
531709
LittleAcbg楼主2022/7/18 11:41
#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;
}

求助!评测记录

2022/7/18 11:41
加载中...