Cyclic Components CodeForces - 977E(找简单环)
2024-10-18 10:44:11
题意:
就是找出所有环的个数, 但这个环中的每个点都必须只在一个环中
解析:
在找环的过程中 判断度数是否为2就行。。。emm。。。
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + , INF = 0x7fffffff; int n, m, s, t, flag;
vector<int> G[maxn];
int vis[maxn], res;
void dfs(int u, int fa)
{
vis[u] = ;
for(int i=; i<G[u].size(); i++)
{
int v = G[u][i];
if(v == fa) continue;
if(vis[v])
{
s = v;
if(G[u].size() != ) flag = ; //判断是否在一个简单环中
return;
}
else
{
dfs(v, u);
if(G[u].size() != ) flag = ;
break;
}
}
if(flag == && s == u)
res++;
} int main()
{
int u, v;
res = ;
cin >> n >> m;
for(int i=; i<m; i++)
{
cin >> u >> v;
G[u].push_back(v);
G[v].push_back(u);
}
for(int i=; i<=n; i++)
{
if(!vis[i])
{
s = INF, flag = ;
dfs(i, -);
}
}
cout << res << endl; return ;
}
最新文章
- Python中的if __name__=&#39;__main__&#39;语句的作用
- C++ STL之vector用法总结
- LightOJ1125 Divisible Group Sums(DP)
- HDU 2433 Travel (最短路,BFS,变形)
- spark storage之SparkEnv
- Spark Shuffle实现
- 利用TOAD实现把EXCEL数据导入oracle数据库
- input的type属性引申的日历组件
- [编织消息框架][JAVA核心技术]动态代理应用10-水平扩展方案
- shell变量的替换,命令的替换,转义字符
- volatile 与 synchronized 区别
- HDU 3949 XOR [高斯消元XOR 线性基]
- 使用 PuTTY 从 Windows 连接到 Linux 实例
- C语言 &#183; 数的划分
- 洛谷P2257 YY的GCD
- Java知多少(21)this关键字详解
- leetcode1006
- github view source
- KAFKA随机产生JMX 端口指定的问题
- C#模拟HTTP POST 请求
热门文章
- 解决EF使用context.Database.SqlQuery时NotMapped属性列为空null的问题(转载)
- jupyter notebook的两个使用技巧
- spark-windows(含eclipse配置)下本地开发环境搭建
- Python3入门(六)——函数式编程
- 接口自动化测试框架-AIM
- docker 学习笔记(1)--常用命令
- 面向 Kubernetes 编程: Kubernetes 是下一代操作系统
- arduino新入手体验:三个小实验
- spring boot 2.0 源码分析(五)
- 《linux内核分析》第一周(2.22~2.28)