cf791B(完全图&dfs)
题目链接:http://codeforces.com/contest/791/problem/B
题意:给出一个无向图,问是否满足若存在边ab, bc则存在边ac;
思路:题意即,对于一个点,其所有子节点都是相互可达的,即为完全图,不过给出的不一定是连通图,所以我们需要判断所有连通分支是否全为为完全图;
因为题目说明了没有重边和自环的情况,那么我们可以统计每个点的度数,对于某个连通分支若其所有点的度数等于当前连通分支点数-1,那么其为完全图;
那么我们只需dfs一下连通分支并统计每个连通分支的点数即可;
代码:
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std; const int MAXN=2e5;
vector<int> mp[MAXN];
int num[MAXN], ans=;
bool flag=false, vis[MAXN]; void dfs(int v, int cnt){
ans++;
if(flag){
return;
}
if(mp[v].size()!=cnt){
flag=true;
return;
}
for(int i=; i<mp[v].size(); i++){
if(!vis[mp[v][i]]){
vis[mp[v][i]]=true;
dfs(mp[v][i], cnt);
}
}
} int main(void){
int n, m, x, y;
scanf("%d%d", &n, &m);
while(m--){
scanf("%d%d", &x, &y);
mp[x].push_back(y);
mp[y].push_back(x);
num[x]++;
num[y]++;
}
for(int i=; i<=n; i++){
if(!vis[i]){
ans=;
vis[i]=true;
dfs(i, num[i]);
if(flag||ans!=num[i]+){
cout << "NO" << endl;
return ;
}
}
}
cout << "YES" << endl;
return ;
}
cf791B(完全图&dfs)的更多相关文章
- hdu4751Divide Groups(dfs枚举完全图集合或者bfs染色)
/************************************************************************* > File Name: j.cpp > ...
- CF #405 (Div. 2) B. Bear ad Friendship Condition (dfs+完全图)
题意:如果1认识2,2认识3,必须要求有:1认识3.如果满足上述条件,输出YES,否则输出NO. 思路:显然如果是一个完全图就输出YES,否则就输出NO,如果是无向完全图则一定有我们可以用dfs来书边 ...
- HDU5952 Counting Cliques计算完全图的个数 巧妙构图+dfs
题目传送门 题目大意:给出n个点,m条无向边,让你计算这幅母图中有几个大小为s的完全图. 完全图的意思是任意一个点都和其他点直接相连,完全图的大小指的就是完全图点的个数. 思路:比较巧妙的构图方式.我 ...
- 数据结构学习笔记05图 (邻接矩阵 邻接表-->BFS DFS、最短路径)
数据结构之图 图(Graph) 包含 一组顶点:通常用V (Vertex) 表示顶点集合 一组边:通常用E (Edge) 表示边的集合 边是顶点对:(v, w) ∈E ,其中v, w ∈ V 有向边& ...
- Codeforces Round #309 (Div. 1) C. Love Triangles dfs
C. Love Triangles Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/553/pro ...
- select 函数实现 三种拓扑结构 n个客户端的异步通信 (完全图+线性链表+无环图)
一.这里只介绍简单的三个客户端异步通信(完全图拓扑结构) //建立管道 mkfifo open顺序: cl1 读 , cl2 cl3 向 cl1写 cl2 读 , cl1 cl3 向 cl2写 cl3 ...
- ZOJ1204——Additive equations(DFS)
Additive equations Description We all understand that an integer set is a collection of distinct int ...
- Aizu 2306 Rabbit Party DFS
Rabbit Party Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest/view. ...
- HDU 5952 Counting Cliques 【DFS+剪枝】 (2016ACM/ICPC亚洲区沈阳站)
Counting Cliques Time Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
随机推荐
- PHP生成图片太慢了。。有些都不出来、
现在为了使用不同宽高的图片,做了个动态生成的程序.每次根据图片传入的宽高来输出图片,然后 html 页面里用 <img src="xxx.com/img?src=c8d997dae15 ...
- indows下PHP通过ffmpeg给上传的视频截图详解
windows下PHP通过ffmpeg给上传的视频截图详解,php_ffmpeg.dll安装下载,找了很久php_ffmpeg.dll的下载地址和应用,发现有用的资源很少,现在问题解决了,贴出来跟大家 ...
- fusioncharts 用法实例
支持xml格式和json格式的数据. 用法很简单. 1.需要引入FusionCharts.js. 2.html中定义个id="chart"的div <div id=" ...
- 用JAVA 的for循环输出 菱形
public class For{ public static void main(String[] args){ //首先.把菱形看成上下两部分,上五下四,所以,第一个for循环有5次,第二个for ...
- java.lang.UnsupportedClassVersionError: com/dw/Function : Unsupported major.minor version 52.0
本地环境中有jdk7和jdk8,当把jdk8改为jdk7时,出现如下错误,是jdk版本的问题,在Properties-->JAVA Compiler-中的Compiler compliance ...
- Android Weekly Notes Issue #290
Android Weekly Issue #290 December 31st, 2017 Android Weekly Issue #290 本期内容包括介绍Kotlin逆变协变的一篇(虽然没说清楚 ...
- koa-bodyparser返回413状态码的问题
413 Request Entity Too Large(请求实体太大) 数日前,我用 node.js 写的一个日志服务抛出了这个状态码-- 自己写的服务抛出了一个自己都不认识的状态码,这是最气的!( ...
- Django 后台管理 之登录和注销
Session: session是服务器端生成保存的一个键值对 , session内部机制依赖于cookie . 用户登录后返回给客户端一个随机字符串,客户端带着随机字符串访问服务器,用于验证 ...
- iOS数据持久化存储之归档NSKeyedArchiver
归档是一种很常用的文件储存方法,几乎任何类型的对象都能够被归档储存(实际上是一种文件保存的形式),收集了网上的一些资料并结合自己的一些经验,总结如下. 一.使用archiveRootObject进行简 ...
- python学习笔记:第五天( 列表、元组)
Python3 列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见 ...