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

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

Solution

有一个结论……如果一个连通块中存在环那么这个连通块一定是TAK……
至于为什么……画几个图然后感性理解一下就会发现非常有道理
然后用并查集乱水水……如果出现环的时候就把这个连通块并查集的根修改一下就好了……

Code

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4
 5 int n,m,x,y,fa[100009],Flag[100009];
 6 int Find(int x){return (x==fa[x])?x:(fa[x]=Find(fa[x]));}
 7
 8 int main()
 9 {
10     scanf("%d%d",&n,&m);
11     for (int i=1; i<=n; ++i) fa[i]=i;
12     for (int i=1; i<=m; ++i)
13     {
14         scanf("%d%d",&x,&y);
15         int fx=Find(x), fy=Find(y);
16         if (fx==fy) Flag[fx]=true;
17         else fa[fx]=fy,Flag[fy]=Flag[fy]|Flag[fx];
18     }
19     for (int i=1; i<=n; ++i)
20         if (fa[i]==i && !Flag[i]) {puts("NIE"); return 0;}
21     puts("TAK");
22 }

转载于:https://www.cnblogs.com/refun/p/9617323.html

BZOJ1116:[POI2008]CLO(并查集)相关推荐

  1. BZOJ 1116 [POI2008]CLO 并查集

    题意:链接 方法:并查集 解析: 第一眼神题,看完hz题解后发现被D了. 明明sb题. 如果某个连通块里存在环那么一定会达到目标状态. 为什么? 自己YY:) 所以并查集合并就行了. 代码: #inc ...

  2. bzoj1116[POI2008]CLO*

    bzoj1116[POI2008]CLO 题意: n点m边双向图,问能否将一些边变成单向使得每个点只有一个入度.n≤100000,m≤200000. 题解: 结论:当图中每个点都与至少一个环相连时满足 ...

  3. bzoj1116 [POI2008]CLO

    题目链接 画画图发现如果某一个连通块中没有环那么就不可能存在方案 所以直接并查集维护一个连通块中有没有环 1 #include<algorithm> 2 #include<iostr ...

  4. bzoj1116: [POI2008]CLO

    传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1116 题目大意:Byteotia城市有n个 towns m条双向roads. 每条 road ...

  5. bzoj 1116: [POI2008]CLO(并查集)

    1116: [POI2008]CLO Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1180  Solved: 649 [Submit][Statu ...

  6. 【bzoj1116】 [POI2008]CLO

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

  7. 1116: [POI2008]CLO

    1116: [POI2008]CLO https://lydsy.com/JudgeOnline/problem.php?id=1116 分析: 单独考虑每个联通块的情况. 设这个联通块里有n个点,那 ...

  8. [POI2008]CLO

    题面 <center>2026: [POI2008]CLO<center> <center>时间限制:10秒 内存限制:162MB<center> 题目 ...

  9. BZOJ 1116 POI2008 CLO

    1116: [POI2008]CLO Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1152  Solved: 635 [Submit][Statu ...

最新文章

  1. arduino点阵声音频谱_基于Arduino和频谱分析的LED音乐课节拍器
  2. 16000亿!谷歌发布人类历史首个万亿级模型 Switch Transformer,中国还有机会赶超吗?...
  3. Python 实现 动态规划 /斐波那契数列
  4. 编写你的第一个 Django 应用,第 5 部分
  5. 如何找到SAP ECC事务码升级到S4HANA后对应的新事务码
  6. 彻底理解HashMap的元素插入原理
  7. 计算机等级考试在校生变成社会考生,关于开展2021年9月份全国计算机等级考试(NCRE)报名工作通知...
  8. 需求分析的故事——如何练就需求分析的火眼金晴?
  9. Java并发(五)线程池使用番外-分析RejectedExecutionException异常
  10. 时间操作(JavaScript版)—页面显示格式:年月日星期几
  11. flask和ajax实现前后端交互
  12. git源码安装后报错:bash: /usr/bin/git: No such file or directory
  13. Python暴力破解rar、zip压缩文件密码
  14. HTML入门笔记13-HTML中font标签
  15. selenium自动化中停止页面加载
  16. 弘玑Cyclone上榜36氪中国超自动化先锋企业
  17. 《设计模式之禅》-策略模式
  18. 整理控|四象限系列电脑桌面壁纸分享一波
  19. REVERSE-COMPETITION-HGAME2022-Week3
  20. bonjour 概述

热门文章

  1. 数据库SQL多表联查联系
  2. asp:TextBox 文本框JS赋值,后台获取不到数据
  3. Fibonacci(斐波那契数列)的实现
  4. 19 Babylonjs入门进阶 设置声音
  5. 总结i2mago的杨智谋的分享
  6. 纯css实现3D立方体
  7. linux中df命令用法,详细分析Linux df命令的使用方法
  8. 【讲座】北大拱玉书教授:苏美尔文明和中国古代文明的几个相同文化现象 笔记
  9. python导入excel表格给列命名_python-操作Excel表格
  10. 华为nova3e怎么分屏_华为荣耀8x怎么分屏华为荣耀8x分屏教程