[BZOJ1116]CLO[并查集]
看了样例突然发现= =无向边不会增加入度。
然后发现是环套环。
一个环所有点入度都为2。
最后的图无视所有无向边的话大概是这样的(将就一下
然后就可以并查集维护一下联通性...
当x , y属于一个联通块(假设是一条链),那么这条链中的每一个点都能作为根节点$root$。因为n个节点的链n-1条边只有root是入度为0的。
否则,对合并后的块(假设y所在的块并入x所在的块),对x的块打标机。
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- inline ll _() {
- ll x=,f=; char ch=getchar();
- for(;ch<''||ch>'';ch=getchar())
- if(ch=='-')f=-f;
- for(;ch>=''&&ch<='';ch=getchar())
- x=x*+ch-'';
- return x*f;
- }
- #define _ _()
- const int N=1e5+;
- int f[N],vis[N];
- inline int find( int x ) { return f[x]==x?x:f[x]=find(f[x]); }
- int main() {
- int n=_,m=_;
- for(int i=;i<=n;i++) f[i]=i,vis[i]=;
- for(int i=,x,y;i<=m;i++) {
- x=find(_); y=find(_);
- if(x==y) vis[x]=;
- else { f[y]=x; vis[x]=vis[x]|vis[y]; }
- }
- for(int i=;i<=n;i++) if(!vis[find(i)]) return puts("NIE"),;
- puts("TAK");
- }
[BZOJ1116]CLO[并查集]的更多相关文章
- BZOJ1116:[POI2008]CLO(并查集)
Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. 你要把其中一些road变成单向边使得:每个t ...
- BZOJ 1116: [POI2008]CLO 并查集
成立时当且仅当每个联通块都有环存在.一个连通块若有m个点,则必有多于m条有向边,可用并查集来维护. #include<cstdio> #include<iostream> #d ...
- 【BZOJ1116】[POI2008]CLO 并查集
[BZOJ1116][POI2008]CLO Description Byteotia城市有n个 towns m条双向roads. 每条 road 连接 两个不同的 towns ,没有重复的road. ...
- bzoj1116 [POI2008]CLO——并查集找环
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1116 分析性质,只要有环,那么给环定一下向就满足了条件: 环上点的其他边可以指向外面,所以两 ...
- [BZOJ1116][Poi2008]LCO(并查集)
题目:http://hzwer.com/3010.html 分析:注意这里无向边是对入度没有贡献的. 那么对于一个n个点的连通块而言,如果它是一颗树(n-1条边),那么把所有边全部从某个根开始向下指, ...
- BZOJ 1116 [POI2008]CLO(并查集)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1116 [题目大意] Byteotia城市有n个towns,m条双向roads.每条ro ...
- [BZOJ1116] CLO
1116: [POI2008]CLO Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1311 Solved: 709[Submit][Status] ...
- BZOJ 4199: [Noi2015]品酒大会 [后缀数组 带权并查集]
4199: [Noi2015]品酒大会 UOJ:http://uoj.ac/problem/131 一年一度的“幻影阁夏日品酒大会”隆重开幕了.大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品 ...
- 关押罪犯 and 食物链(并查集)
题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气值"( ...
随机推荐
- Linux增加swap分区的方法
在装完Linux系统之后,建立Swap分区有两种方法. 1.新建磁盘分区作为swap分区2.用文件作为swap分区 (操作更简单,我更常用) 一.新建磁盘分区作为swap分区 1. # swapoff ...
- 【BZOJ4590】[Shoi2015]自动刷题机 二分
[BZOJ4590][Shoi2015]自动刷题机 Description 曾经发明了信号增幅仪的发明家SHTSC又公开了他的新发明:自动刷题机--一种可以自动AC题目的神秘装置.自动刷题机刷题的方式 ...
- 160728、Spark Streaming kafka 实现数据零丢失的几种方式
定义 问题开始之前先解释下流处理中的一些概念: At most once - 每条数据最多被处理一次(0次或1次) At least once - 每条数据最少被处理一次 (1次或更多) Exactl ...
- 解决scrapy fetch http://www.csdn.net ModuleNotFoundError No module named 'win32api'和ImportError DLL load failed找不到指定的模块
1.解决scrapy fetch http://www.csdn.netModuleNotFoundError No module named 'win32api' Python是没有自带访问wind ...
- window下搭建python开发环境
搭建一个python开发环境比较简单,所以就稍微记录一下. 1.下载python然后安装 2.配置环境变量 3.在eclipse添加PyDev插件 1.下载python 官网:https://www. ...
- delphi xe-system.json
Delphi XE10有一个对JSON处理的单元,在你需要使用JSON的单元里面引入"System.json",随后你就可以用Delphi自己的json处理类了. 普通解析 实例1 ...
- 第三课作业——set类型、sorted set类型的增删改查,redis的事务
第三课时作业 静哥 by 2016.2.23~2016.3.6 [作业描述] 1.总结什么是set以及什么是sorted set,并完成对set以及sorted set的增删改查(查需要至少4种方 ...
- C# 利用StringBuilder提升字符串拼接性能
一个项目中有数据图表呈现,数据量稍大时显得很慢. 用Stopwatch分段监控了一下,发现耗时最多的函数是SaveToExcel 此函数中遍列所有数据行,通过Replace替换标签生成Excel行,然 ...
- maven安装,maven命令行使用
1 下载maven,解压(无需安装),配置环境变量,命令行mvn -v测试. 2 maven常用命令:https://www.cnblogs.com/wkrbky/p/6352188.html 3 注 ...
- Delphi中MD5实现方法(转)
原来写过一个计算MD5的程序,是用了一个叫MD5.pas的单元,使用起来还算简单,但还有更简单的办法,安装了indy就会有IdHashMessageDigest单元(delphi 7默认安装indy) ...