• 1134 Vertex Cover (25 分)


    判断点覆盖,用前向星直接切。

    idx存储边的下标,idx^1为反向边,注意边数组开两倍,因为存的双边。

    const int N=1e4+10;
    int h[N],e[N<<1],ne[N<<1],idx;
    bool vis[N<<1];
    int n,m,q;
    
    void add(int a,int b)
    {
        e[idx]=b,ne[idx]=h[a],h[a]=idx++;
    }
    
    int main()
    {
        memset(h,-1,sizeof h);
        cin>>n>>m;
    
        while(m--)
        {
            int a,b;
            cin>>a>>b;
            add(a,b);
            add(b,a);
        }
    
        cin>>q;
        while(q--)
        {
            memset(vis,0,sizeof vis);
            int k;
            cin>>k;
            for(int i=0;i<k;i++)
            {
                int x;
                cin>>x;
                for(int j=h[x];~j;j=ne[j])
                    vis[j]=vis[j^1]=true;
            }
    
            bool ok=true;
            for(int i=0;i<idx;i++)
                if(!vis[i])
                {
                    ok=false;
                    break;
                }
    
            if(ok) puts("Yes");
            else puts("No");
        }
        //system("pause");
        return 0;
    }
    

    或者直接暴力就好了,省去用前向星存图了。

    const int N=1e4+10;
    PII e[N];
    bool vis[N];
    int n,m,q;
    
    int main()
    {
        cin>>n>>m;
    
        for(int i=0;i<m;i++) cin>>e[i].fi>>e[i].se;
    
        cin>>q;
        while(q--)
        {
            memset(vis,0,sizeof vis);
            int k;
            cin>>k;
            for(int i=0;i<k;i++)
            {
                int x;
                cin>>x;
                vis[x]=true;
            }
    
            bool ok=true;
            for(int i=0;i<m;i++)
                if(!vis[e[i].fi] && !vis[e[i].se])
                {
                    ok=false;
                    break;
                }
    
            if(ok) puts("Yes");
            else puts("No");
        }
        //system("pause");
        return 0;
    }
    
  • 相关阅读:
    .net core 在 Docker 上的部署
    js 运算的内置函数
    vux 项目的构建
    微信小程序开发资料
    HttpClient 调用WebAPI时,传参的三种方式
    jsplumb 中文教程
    MyEclipse最新版-版本更新说明及下载
    如何用VSCode调试Vue.js
    vs2017开发Node.js控制台程序
    Objc的底层并发API
  • 原文地址:https://www.cnblogs.com/fxh0707/p/14475649.html
Copyright © 2020-2023  润新知