L2-025 分而治之

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const int N = 10010, M = N * 2;

vector<int> g[N];

int main() {
    int n, m;
    cin >> n >> m;
    for (int i = 0; i < m; i++) {
        int a, b;
        cin >> a >> b;
        g[a].push_back(b), g[b].push_back(a);
    }   

    int q;
    cin >> q;
    while (q--) {
        int k;
        cin >> k;
        set<int> destory;
        for (int i = 0; i < k; i++) {
            int x;
            cin >> x;
            destory.insert(x);
        }
        vector<bool> vis(n + 1, false); 

        function<void(int)> dfs = [&](int u) { 
            vis[u] = true;
            for (auto &v : g[u]) {
                if (vis[v] || destory.count(v)) continue;
                dfs(v);
            }
        };

        int res = 0;
        for (int i = 1; i <= n; i++) {
            if (!vis[i] && !destory.count(i)) {
                res++;
                dfs(i);
            }
        }

        if (res == n - k) cout << "YES" << "\n";
        else cout << "NO" << "\n";
    }

    return 0;
}
posted @   Xxaj5  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2020-03-22 暴力+分治+贪心+DP:最大子序列和
2020-03-22 (Good topic)四因数 (leetcode 181周赛T2)
2020-03-22 按既定顺序创建目标数组 (leetcode181周赛T1)
2020-03-22 排序:使数组唯一的最小增量 (3.22 leetcode每日打卡)
2020-03-22 (Good topic)字符串的最大公因子 (3.21leetcode每日打卡)
点击右上角即可分享
微信分享提示