• L2-025. 分而治之


    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    #include<algorithm>
    #include<math.h>
    #include<vector>
    using namespace std;
    struct node
    {
        int u;
        int v;
    }a[10005];
    int vis[10005];
    int main()
    {
        int n,m;
        cin>>n>>m;
        for(int i=1;i<=m;i++)
           cin>>a[i].u>>a[i].v;
        int k;
        cin>>k;
        while(k--)
        {
            int len,flag=0,b;
            cin>>len;
            memset(vis,0,sizeof(vis));
            for(int i=1;i<=len;i++)
            {
                cin>>b;
                vis[b]=1;//打下了b城市
            }
            for(int i=1;i<=m;i++) //枚举出现过的m个a[i].u <--> a[i].v结盟对
            {
                if(!vis[a[i].u] && !vis[a[i].v]) //一边两端点全都没在摧毁区 o_o (将军你这打法不对啊 人家还好好的绑在一起同生共死 你怎么分而治之 只要有一个结盟团队存在就标记为1 马上跳出 pass你这垃圾方案 朕就是这样决绝)
                    {flag=1; break;} 
                    //if o_x 联边只要有一个端点在vis摧毁区就孤立了 俗称唇亡齿寒(f = 0说明攻击方案暂且可行)
            }
            if(!flag)
                printf("YES
    ");//检查所有结盟对发现都被打散了 要么垮某一个 要么全垮了 ojbk
            else
                printf("NO
    "); //剩余的城市并没有都变成孤立无援
        }
        return 0;
    }
    View Code
  • 相关阅读:
    mysql学习笔记-数据库相关操作
    bugku-flag在index里(本地文件包含漏洞+php伪协议的结合应用)
    nmap的指令学习
    雅礼2018-03-11
    两道题,雅礼一题矩阵转置
    2018-03-05 计算鞍点
    多维数组
    TCP拥塞控制
    TCP三次握手和四次挥手
    MySQL事务隔离级别详解
  • 原文地址:https://www.cnblogs.com/Roni-i/p/8699066.html
Copyright © 2020-2023  润新知