题目位置

题目大意是给一个无向连通图,找其中有几个标准的圈。

所谓标准的圈,就是一个圈外不能有其他线段和环。那么其中每个点都只有两条边

我的方法是用bfs将连通的一组点放入一个队列中,如果这些点都只有两条边,那么这些点形成一个圈;如果其中有一个点的边数!=2,那么这些点没有形成圈。

#include <iostream>
#include <stdio.h>
using namespace std;
int n,m,head[1000010],zz=0,vis[1000010],edge[1000010],que[1000010];
struct HAHA{int v,next;
}list[2000010];void connect(int u,int v)
{zz++;list[zz].v=v;list[zz].next=head[u];head[u]=zz;edge[u]++;
}int bfs(int start)
{int hz=1,tz=1;que[hz]=start;vis[start]=1;while(hz<=tz){int now=que[hz];for(int i=head[now];i;i=list[i].next){int v=list[i].v;if(vis[v]) continue;tz++;vis[v]=1;que[tz]=v;}hz++;}for(int i=1;i<=tz;i++){if(edge[que[i]]!=2) return 0;}return 1;
}int main()
{scanf("%d%d",&n,&m);int d1,d2;for(int i=1;i<=m;i++){scanf("%d%d",&d1,&d2);connect(d1,d2);connect(d2,d1);}int ans=0;for(int i=1;i<=n;i++){if(!vis[i]) ans+=bfs(i);}cout<<ans<<endl;return 0;
}

转载于:https://www.cnblogs.com/BakaCirno/p/10507448.html

找圈圈 (BFS简单运用)相关推荐

  1. BFS简单搜索--POJ 2243

    这题就是简单的BFS搜索,刚刚转到C++,还有很多库函数不熟悉,理解到BFS是一种奇妙的迭代法,其用的主要是队列的性质. 1 /*BFS简单搜索*/ 2 #include<iostream> ...

  2. 魔兽世界不同服务器集合石显示的内容,魔兽世界集合石插件屏蔽关键字分享,这下找队伍就简单了...

    原标题:魔兽世界集合石插件屏蔽关键字分享,这下找队伍就简单了 在魔兽世界里,用集合石插件来寻找队伍和队友是非常方便的.不过如今的集合石上面的广告比较多,不屏蔽一些关键词的话,玩家们只能在广告的夹缝里寻 ...

  3. python求小数_python-查找小数位的简单方法

    python-查找小数位的简单方法 是否有简单的方法或集成函数来找出浮点数的小数位? 该数字是从字符串中解析出来的,因此一种方法是对"."之后的数字进行计数. 标志,但是对我来说看 ...

  4. DFS BFS简单理解

    文章目录 BFS DFS介绍 实现思路 DFS BFS怎么应用 DFS BFS对比 又水了一篇博客呜呜,第一次尝试写DFS和BFS,做题也迷迷糊糊,看着大佬文章简单写了写总结,后续会补上DFS和BFS ...

  5. SDUTOJ2779_找朋友(BFS | | DFS双解法)

    找朋友 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description X,作为户外运动的忠实爱好者, ...

  6. 仿链家地图找房的简单实现 1

    本篇目录: 使用入门 简单使用流程 链家地图找房效果 区域点位气泡 数据结构 实现 addOverlay方法 区域边界 获取区域点位经纬度 获取区域边界 小结 最近由于项目需要,开始调研如何使用百度地 ...

  7. C语言——找零钱、简单加减、身高换算

    找零钱程序 要求输入金额,输出找零金额. int main() {int amount=100;int price=0;printf("请输入需付金额(元):");scanf(&q ...

  8. 坦克大战(bfs简单变形)

    坦克大战 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 Many of us had played the game "Battle city" i ...

  9. 实现超市收银找零的简单程序

    初学c语言程序与设计的第一个课堂作业 实现简单的"收银","找零"程序 帮助快速理解c语言初期的代码理解问题 建议再自己动手的情况下多练习,熟悉代码编辑的逻辑 ...

最新文章

  1. 如何让黑白图片恢复“生机”
  2. 浙大超重力离心模拟与实验装置有望年底开建 释放五大利好
  3. 实用ExtJS教程100例-009:ExtJS Form无刷新文件上传
  4. 数字图像处理实验(11):PROJECT 05-02,Noise Reduction Using a Median Filter
  5. [BUUCTF-pwn]——wustctf2020_getshell
  6. 通俗易懂的讲解堆排序(含Gif图)
  7. 监听router_深入揭秘前端路由本质,手写 mini-router
  8. VS2008SP1中jQuery Intellisense补丁KB958502安装失败的解决办法
  9. 一名计算机专业新生代农民工的五年求学之路,从“低谷”到“山峰”
  10. box-shadow用法;http://riny.net/lab/css3/box-shadow.html
  11. 网易云计算机系统有限公司,网易云音乐
  12. 人工智能在日常农业种植中的应用
  13. Java | Comparable接口和Comparator接口比较
  14. 已经过去2周了,你感觉怎么样?
  15. kafka connector使用(Docker一键启动版)
  16. 5个拍出可爱宝宝的方法
  17. 酷雷曼VR丨十大“高含金量”荣誉,一起见证!
  18. mi4a android tv,小米电视4A精简系统教程
  19. 技术汇总:第七章:三种验证方式
  20. 柴油闪点不合格的原因

热门文章

  1. kubectl 重启pod_记一次kyverno重启解决
  2. mac os vmware 显卡驱动_【新机】华为Mate 40系列国行售价明天公布,饿了么可以买手机?| 干翻牙膏厂,AMD发布RX6000显卡...
  3. 随着计算机多媒体技术的产生和发展,多媒体技术及其应用与发展论文(本科)10...
  4. c语言实现补码加减,C语言实现用位移运算符进行加减乘…
  5. 光遇自动弹琴脚本代码_光遇弹琴辅助软件下载-光遇自动弹琴脚本代码下载v1.0_86PS软件园...
  6. linux命令之nc,emacs,go run,查看文件行数等
  7. 【金三银四】java多线程并发编程pdf
  8. java读取pdf文件流,系列篇
  9. ELK性能优化实战分析
  10. 【机器学习】基于概率论的分类方法和Logistic回归