• hdu 5971


    题意:输入n,m,x,y;表示有n个人,输入m种对立关系,输入x个确认好人的标号,y个确认坏人的标号

    思路:我们可以从确定的好人和坏人出发,有错误身份的输出NO,最后有不确定的输出NO,否则YES。

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 map<int ,int >mp;
     4 vector<int >p[1003];
     5 int sum,f;
     6 void init(){
     7     mp.clear();
     8     for(int i=0;i<1003;i++)
     9         p[i].clear();
    10     sum=0;f=0;
    11 }
    12 void dfs(int x,int y) {
    13    if(f) return ;
    14    for(int i=0;i<p[x].size();i++){
    15     if( mp[p[x][i]]==y )  { f=1; return ;}
    16       if( mp[p[x][i]]==0 ){
    17         sum++;
    18         mp[p[x][i]]=-y;
    19         dfs(p[x][i],-y);
    20      }
    21    }
    22 }
    23 int main()
    24 {
    25     int n,m,x,y;
    26     int a,b;
    27     while(scanf("%d%d%d%d",&n,&m,&x,&y)!=EOF){
    28             init();
    29         for(int i=1;i<=m;i++) {
    30             scanf("%d%d",&a,&b);
    31             p[a].push_back(b);p[b].push_back(a);
    32         }
    33        
    34         for(int i=1;i<=x;i++){
    35             scanf("%d",&a);
    36             if(f==1) continue;
    37             if(mp[a]==-1) {f=1;continue;}
    38             if(mp[a]==0) {
    39                mp[a]=1; dfs(a,1);sum++;
    40             }
    41         }
    42         for(int i=1;i<=y;i++) {
    43             scanf("%d",&b);
    44             if(f==1) continue;
    45             if(mp[b]==1) {f=1;continue;}
    46             if(mp[b]==0){
    47                 mp[b]=-1;dfs(b,-1);sum++;
    48             }
    49         }
    50         for(int i=1;i<=n;i++){
    51             if(mp[i]==0){
    52                 if(p[i].size()==0){f=1;break;}
    53                 mp[i]=1;
    54                 sum++;
    55                 dfs(i,1);
    56             }
    57         }
    58         if(sum==n&&f==0) printf("YES
    ");
    59         else  printf("NO
    ");
    60     }
    61     return 0;
    62 }
  • 相关阅读:
    APC 注入
    远程线程注入突破SESSION 0
    .Net审计之.Net Json反序列化
    PHP审计之BEESCMS审计案例
    Thinkphp5学习笔记
    mysql 必知必会整理—触发器[十五]
    mysql 必知必会整理—游标[十四]
    mysql 必知必会整理—存储过程[十三]
    mysql 必知必会整理—视图[十二]
    mysql 必知必会整理—表[十一]
  • 原文地址:https://www.cnblogs.com/hhxj/p/6954062.html
Copyright © 2020-2023  润新知