zoukankan      html  css  js  c++  java
  • codevs 2597 团伙

    2597 团伙

     

    时间限制: 1 s
    空间限制: 128000 KB
    题目等级 : 黄金 Gold
     
     
     
    题目描述 Description

    1920年的芝加哥,出现了一群强盗。如果两个强盗遇上了,那么他们要么是朋友,要么是敌人。而且有一点是肯定的,就是:

    我朋友的朋友是我的朋友;

    我敌人的敌人也是我的朋友。 

    两个强盗是同一团伙的条件是当且仅当他们是朋友。现在给你一些关于强盗们的信息,问你最多有多少个强盗团伙。

    输入描述 Input Description

    输入文件gangs.in的第一行是一个整数N(2<=N<=1000),表示强盗的个数(从1编号到N)。 第二行M(1<=M<=5000),表示关于强盗的信息条数。 以下M行,每行可能是F p q或是E p q(1<=p q<=N),F表示p和q是朋友,E表示p和q是敌人。输入数据保证不会产生信息的矛盾。

    输出描述 Output Description

    输出文件gangs.out只有一行,表示最大可能的团伙数。

    样例输入 Sample Input

    6
    4
    E 1 4
    F 3 5
    F 4 6
    E 1 2

    样例输出 Sample Output

    3

    数据范围及提示 Data Size & Hint

    2<=N<=1000

    1<=M<=5000

    1<=p q<=N

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 using namespace std;
     5 int father[10086];
     6 int enemy[10086];
     7 int find(int x)
     8 {
     9     if(father[x]!=x)return father[x]=find(father[x]);
    10     else return x;
    11 }
    12 void u(int x,int y)
    13 {
    14     father[find(x)]=find(y);
    15 }
    16 int main()
    17 {
    18     int n,m;
    19     scanf("%d%d",&n,&m);
    20 
    21     for(int i=1;i<=n;i++)
    22     {
    23         father[i]=i;
    24     }
    25     int a,b;char c;
    26     for(int i=1;i<=m;i++)
    27     {
    28         
    29         cin>>c>>a>>b;
    30         if(c=='F')
    31         {
    32         u(a,b);
    33         }
    34         if(c=='E')
    35         {
    36             if(enemy[a])u(b,enemy[a]);
    37             if(enemy[b])u(a,enemy[b]);
    38             enemy[a]=b;
    39         }
    40     }
    41     int ans=0;
    42     for(int i=1;i<=n;i++)
    43     {
    44         if(father[i]==i)ans++;
    45     }
    46     cout<<ans;
    47     return 0;
    48 }
  • 相关阅读:
    virtual Box在Centos 7上的安装
    Spark MLlib使用有感
    storm集群配置
    eclipse配置hadoop插件
    HDFS的java接口——简化HDFS文件系统操作
    【hbase】——HBase 写优化之 BulkLoad 实现数据快速入库
    【hbase】——Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
    【转】RHadoop实践系列之二:RHadoop安装与使用
    【转】RHadoop实践系列之一:Hadoop环境搭建
    Hadoop生态系统如何选择搭建
  • 原文地址:https://www.cnblogs.com/sssy/p/6701121.html
Copyright © 2011-2022 走看看