题意:

  就是找出所有环的个数, 但这个环中的每个点都必须只在一个环中

解析:

  在找环的过程中 判断度数是否为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 ;
}

最新文章

  1. Python中的if __name__=&#39;__main__&#39;语句的作用
  2. C++ STL之vector用法总结
  3. LightOJ1125 Divisible Group Sums(DP)
  4. HDU 2433 Travel (最短路,BFS,变形)
  5. spark storage之SparkEnv
  6. Spark Shuffle实现
  7. 利用TOAD实现把EXCEL数据导入oracle数据库
  8. input的type属性引申的日历组件
  9. [编织消息框架][JAVA核心技术]动态代理应用10-水平扩展方案
  10. shell变量的替换,命令的替换,转义字符
  11. volatile 与 synchronized 区别
  12. HDU 3949 XOR [高斯消元XOR 线性基]
  13. 使用 PuTTY 从 Windows 连接到 Linux 实例
  14. C语言 &#183; 数的划分
  15. 洛谷P2257 YY的GCD
  16. Java知多少(21)this关键字详解
  17. leetcode1006
  18. github view source
  19. KAFKA随机产生JMX 端口指定的问题
  20. C#模拟HTTP POST 请求

热门文章

  1. 解决EF使用context.Database.SqlQuery时NotMapped属性列为空null的问题(转载)
  2. jupyter notebook的两个使用技巧
  3. spark-windows(含eclipse配置)下本地开发环境搭建
  4. Python3入门(六)——函数式编程
  5. 接口自动化测试框架-AIM
  6. docker 学习笔记(1)--常用命令
  7. 面向 Kubernetes 编程: Kubernetes 是下一代操作系统
  8. arduino新入手体验:三个小实验
  9. spring boot 2.0 源码分析(五)
  10. 《linux内核分析》第一周(2.22~2.28)