1116: [POI2008]CLO

https://lydsy.com/JudgeOnline/problem.php?id=1116

分析:

  单独考虑每个联通块的情况。
  设这个联通块里有n个点,那么至少有n-1条边了。
  如果每个点入度都为1,那么就要求至少有n条边(其实就是基环树),大于n条边可以不选。
  所以有:如果一个联通块是可行的,必须满足存在大于等于点数条边。
  所以并查集维护加边的过程。
    1、出现了环,那么这个联通块就合法了。
    2、合并两个联通块,只要一个联通块里合法就行。(一个合法了,另一个也至少存在n-1条边,那么加入这条后,刚好满足了)。
代码:

 1 #include<cstdio>
 2 #include<algorithm>
 3 #include<cstring>
 4 #include<iostream>
 5 #include<cmath>
 6 #include<cctype>
 7 #include<set>
 8 #include<queue>
 9 #include<vector>
10 #include<map>
11 using namespace std;
12 typedef long long LL;
13
14 inline int read() {
15     int x=0,f=1;char ch=getchar();for(;!isdigit(ch);ch=getchar())if(ch=='-')f=-1;
16     for(;isdigit(ch);ch=getchar())x=x*10+ch-'0';return x*f;
17 }
18
19 const int N = 200005;
20
21 int fa[N], g[N];
22
23 int find(int x) {
24     return x == fa[x] ? x : fa[x] = find(fa[x]);
25 }
26
27 int main() {
28     int n = read(), m = read();
29     for (int i = 1; i <= n; ++i) fa[i] = i;
30     while (m --) {
31         int u = read(), v = read();
32         u = find(u), v = find(v);
33         if (u == v) g[u] = 1;
34         else fa[u] = v, g[v] |= g[u];
35     }
36     for (int i = 1; i <= n; ++i)
37         if (!g[find(i)]) return puts("NIE"), 0;
38     puts("TAK");
39     return 0;
40 }
41 

转载于:https://www.cnblogs.com/mjtcn/p/10045619.html

1116: [POI2008]CLO相关推荐

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

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

  2. BZOJ 1116 POI2008 CLO

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

  3. BZOJ 1116: [POI2008]CLO

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

  4. BZOJ 1116 [POI2008]CLO 并查集

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

  5. bzoj1116[POI2008]CLO*

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

  6. [POI2008]CLO

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

  7. bzoj1116: [POI2008]CLO

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

  8. bzoj1116 [POI2008]CLO

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

  9. BZOJ1116:[POI2008]CLO(并查集)

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

最新文章

  1. php 61850,南瑞内部61850培训教程很好很强大-系统集成文档类资源
  2. VS 中配置使用Visual SVN系列 一:SVN Server下载和安装
  3. OpenGL textures combined组合纹理的实例
  4. [转载]EF中的那些批量操作
  5. NGINX的奇淫技巧 —— 7. IF实现数学比较功能 (2)
  6. MVC Code First中的惯例(约定)
  7. 零售分析用vba还是python_数据分析?Excel、VBA和Python?营销套路还是大势所趋!...
  8. HTML5 meta最全使用手册
  9. maven项目在eclipse中debug
  10. redis、kafka、rabittMQ对比 (转)
  11. DigitalOcean发布弹性块存储服务
  12. 威纶触摸屏EB8000编程软件V4.65.14 官方最新版
  13. 《老路用得上的商学课》91-95学习笔记
  14. 资产标签二维码方案设计
  15. java的程序员工资一般多少_JAVA程序员工资一般是多少
  16. Android Button设置边框 和背景
  17. 树莓派4B EC20 查看4G信号强度
  18. 如何用python进行数据处理?(二)
  19. 解决“手机锂电池无输出电压,无法充电”
  20. excel批量重命名工作表

热门文章

  1. 搞不明白的PS调色技巧视频教程
  2. [大数据]数据可视化 -- 练习卷(上)
  3. ERP管理员培训报道
  4. 从删除到坐牢,这个锅背不动
  5. 基于区块链的电子档案及其流转管理系统
  6. pyqt和pyside如何导入第三方绘图库pyqtgraph
  7. 虚假新闻识别检测分类
  8. 记一次xfs文件系统损坏,磁盘修复问题
  9. 高校计算机教师年度考核,教师年度考核个人总结范文
  10. 基于分布式微服务的SAAS统一认证平台