zoukankan      html  css  js  c++  java
  • codeforces 791B Bear and Friendship Condition

    题目链接:http://codeforces.com/contest/791/problem/B

    题意:n个人,共有m对关系。如果x和y有关系,y和z有关系,只有x和y有关系的时候才认为这样是合法的。现在问你输入是否合法。

    分析:我是dfs做的,将每对关系存入vector,然后数组记录每一个人他一共有多少关系,然后dfs他,看和他有关系的人是不是关系数也和他一样。一旦有不一样的,就输出"NO".

    AC代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 
     4 int a[150005];
     5 vector<int>g[150005];
     6 int vis[150005];
     7 int p=0,number;
     8 void dfs(int x){
     9     int d=g[x].size();
    10     if(p==1) return;
    11     vis[x]=1;
    12     number++;
    13     for(int i=0;i<d;i++){
    14         if(vis[g[x][i]]==0) {
    15             if(a[g[x][i]]!=a[x]){
    16                 p=1;
    17                 break;
    18             }
    19             dfs(g[x][i]);
    20         }
    21     }
    22 }
    23 int main() {
    24     ios_base::sync_with_stdio(0);
    25     cin.tie(0);
    26     int n,m;
    27     memset(a,0,sizeof(a));
    28     cin>>n>>m;
    29     int x,y;
    30     for(int i=1;i<=m;i++){
    31         cin>>x>>y;
    32         g[x].push_back(y);
    33         g[y].push_back(x);
    34         a[x]++;
    35         a[y]++;
    36     }
    37     memset(vis,0,sizeof(vis));
    38     for(int i=1;i<=n;i++){
    39         number=0;
    40         if(vis[i]==0) {
    41             dfs(i);
    42             if(p==1||number!=a[i]+1) {p=1;break;}
    43         }
    44     }
    45     if(p==0) cout<<"YES"<<endl;
    46     else cout<<"NO"<<endl;
    47 
    48 return 0;
    49 }
    View Code
  • 相关阅读:
    [zz]Mesos的分析4 支持Hadoop任务级调度
    代理设计模式
    spring初始化
    SpringAOP的切点的声明格式
    SpringAOP的介绍
    SpringIOC创建对象的单例和多例模式
    动态代理
    SpringIOC的自动注入
    SpringAOP的注解方式实现
    cglib动态代理实现流程
  • 原文地址:https://www.cnblogs.com/ls961006/p/6942587.html
Copyright © 2011-2022 走看看