zoukankan      html  css  js  c++  java
  • [BZOJ1116] CLO

    1116: [POI2008]CLO

    Time Limit: 10 Sec  Memory Limit: 162 MB
    Submit: 1311  Solved: 709
    [Submit][Status][Discuss]

    Description

    Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 你要把其中一些road变成单向边使得:每个town都有且只有一个入度

    Input

    第一行输入n m.1 <= n<= 100000,1 <= m <= 200000 下面M行用于描述M条边.

    Output

    TAK或者NIE 常做POI的同学,应该知道这两个单词的了...

    Sample Input

    4 5
    1 2
    2 3
    1 3
    3 4
    1 4

    Sample Output

    TAK

    上图给出了一种连接方式.
     

     
    没有环输出NIE,并查集水过去
     

    #include <iostream>
    #include <cstdio>
    using namespace std;
    int n, m;
    int fa[100010];
    int Find(int x){return x==fa[x]?x:fa[x]=Find(fa[x]);}
    bool mark[100010];
    int main()
    {
        scanf("%d%d", &n, &m);
        for (register int i = 1 ;i <= n ;i ++)fa[i] = i;
        for (register int i = 1 ; i <= m ; i ++)
        {
            int x, y;
            scanf("%d%d", &x, &y);
            int fx = Find(x), fy = Find(y);
            if (fx == fy) mark[fx] = 1;
            else fa[fx] = fy, mark[fy] = (mark[fx] | mark[fy]);
        }
        for (register int i = 1 ; i <= n ; i ++){
            if (mark[Find(i)] == 0) return puts("NIE"), 0;
        }
        puts("TAK");
        return 0;
    }
     
  • 相关阅读:
    Zookeeper zkCli.sh常用命令
    windows 服务
    Zookeeper的下载安装
    Zookeeper 基础知识
    在Java中使用Redis
    Redis 集群(cluster)
    Redis 哨兵(Sentinel)机制
    Redis 主从复制
    Redis 发布/订阅
    Redis 事务
  • 原文地址:https://www.cnblogs.com/BriMon/p/9307900.html
Copyright © 2011-2022 走看看