[HDU5215]Cycle

题目大意:给定一张边权为1的无向图,问是否存在长度为奇数的环和长度为偶数的环。(n<=105,m<=3*105)

 

调都调不好的的代码==

容易想到的是,从一个点x开始DFS,如果两次访问到一个点,这两条路径就会构成一个环

根据两次到达的时候该点与x的距离,就能算出环的的长度

两个如果一个点属于两个奇环,图中就存在至少一个偶环

代码:

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <vector>
 5 #define M 100010
 6 #pragma comment(linker, "/STACK:102400000,102400000")
 7 using namespace std;
 8 vector<int> vec[M];
 9 int deep[M],vis[M];
10 int ans[2];
11 int eve[M];
12 void dfs(int x,int fa)
13 {
14     vis[x]=1;
15     int sz=vec[x].size();
16     for(int i=0;i<sz;i++)
17     {
18         int to=vec[x][i];
19         if(to==fa) continue;
20         if(vis[to])
21         {
22             if(deep[x]>=deep[to])
23             {
24                 int len=(deep[x]-deep[to]+1)&1;
25                 ans[len]++;
26                 if(len%2==1)
27                 {
28                     eve[x]++;
29                     if(eve[to]) ans[0]++;
30                 }
31             }
32             continue;
33         }
34         deep[to]=deep[x]+1;
35         dfs(to,x);
36     }
37 }
38  
39 int main()
40 {
41     int T;
42     scanf("%d",&T);
43     while(T--)
44     {
45         int n,m;
46         scanf("%d%d",&n,&m);
47         ans[0]=ans[1]=0;
48         memset(vis,0,sizeof(vis));
49         memset(eve,0,sizeof(eve));
50         memset(deep,0,sizeof(deep));
51         for(int i=0;i<=n;i++) vec[i].clear();
52         for(int i=0;i<m;i++)
53         {
54             int u,v;
55             scanf("%d%d",&u,&v);
56             vec[u].push_back(v);
57             vec[v].push_back(u);
58         }
59         for(int i=1;i<=n;i++)
60             if(!vis[i])
61                 dfs(i,0);
62         if(ans[1]) puts("YES");
63         else puts("NO");
64         if(ans[0]) puts("YES");
65         else puts("NO");
66     }
67     return 0;
68 }

 

转载于:https://www.cnblogs.com/Slrslr/p/9527728.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465157.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第一次收到这么用心的感谢信

今天收到一个读者的感谢信心里特别暖&#xff0c;发出来给大家看看说明这很长时间的付出&#xff0c;说的很多话&#xff0c;是对别人是有帮助的&#xff0c;我也希望能够帮助到更多的人&#xff0c;希望大家有方向&#xff0c;有自己对生活的态度&#xff0c;然后坚持自己的理…

android fragment 底部菜单栏,一句话搞定Android底部导航栏,一键绑定Fragment、ViewPager...

现在大多数App都会用到底部导航栏&#xff0c;比如常见的聊天工具QQ、微信、购物App等等&#xff0c;有了底部导航栏&#xff0c;用户可以随时切换界面&#xff0c;查看不同的内容。它的实现方式也很多&#xff0c;以前大多使用TabHost来实现&#xff0c;但是现在我们有很多更好…

Http协议之报文·方法·状态码

【要点】 1. HTTP协议的主要特点2. HTTP报文的组成部分3. HTTP方法4. POST 和 GET的区别5. HTTP状态码【总结】HTTP协议的主要特点 主要特点&#xff1a;简单快速&#xff0c; 灵活&#xff0c; 无连接&#xff08;非keep-alive&#xff09;&#xff0c;无状态 每个资源URI是固…

MyEclipse 深色主题

Eclipse 是不支持主题的&#xff0c;不过可以通过导入导出perference文件来实现修改文本编辑器配色。 这里是一个深色主题&#xff0c;抓个图给大家看看&#xff1a; 下载地址&#xff1a;http://blog.codefront.net/2006/09/28/vibrant-ink-textmate-theme-for-eclipse/ 这里还…

深入理解嵌入式中重要的编程模型

大家好&#xff0c;我是写代码的篮球球痴。今天我们看一看业界一些著名的编程模型。背景模型是对事物共性的抽象&#xff0c;编程模型就是对编程的共性的抽象。什么是编程的共性呢&#xff1f;最重要的共性就是&#xff1a;程序设计时&#xff0c;代码的抽象方式、组织方式或复…

android v4包自动导入吧,android如何导入v4包的源码

1.我们导入v4包源码却发现没有导入按钮当我们调用android-support-v4.jar里面的控件的时候(这里以android.support.v4.view.ViewPager举例说明)&#xff0c;很多时候还需要查看此控件的源码&#xff0c;我们按住Ctrl键点击如下图中的ViewPager之后会出现如下提示出现这个问题的…

【floyd】【bitset】洛谷 P1841 [JSOI2007]重要的城市 题解

bitset玄学完美优化复杂度&#xff1f; 题目描述 参加jsoi冬令营的同学最近发现&#xff0c;由于南航校内修路截断了原来通向计算中心的路&#xff0c;导致去的路程比原先增加了近一公里。而食堂门前施工虽然也截断了原来通向计算中心的路&#xff0c;却没有使路程增加&#xf…

新风口下:嵌入式AI学习中较好的练手项目(附代码资料/学习视频/学习规划)...

有粉丝问我&#xff1a;“当前乃至未来5-10年&#xff0c;嵌入式开发者还有哪些风口&#xff1f;”画外音&#xff1a;风口的本质&#xff0c;其实就是一段时间的人才供需不平衡。说白了就是由于行业突变&#xff0c;敏锐的资本快速进入&#xff0c;导致短时间内行业大量扩张&a…

Windows 任务栏缩略图自定义程序[更新 Build20100830]

很久没有写一点小玩意儿了&#xff0c;今天终于有了一次机会。这个程序能够对 Windows 7 中的任务栏实时预览缩略图进行一系列个性化的调整&#xff0c;使其使用起来更炫更方便&#xff0c;避免了不方便的注册表修改操作&#xff0c;将其转化为方便图形界面&#xff0c;只需要点…

excel 如何使用android,如何使用Android操作Excel文件

这篇文章介绍如何使用Android操作Excel文件Android中操作Excel文件导出报表时主要采用开源库jxl&#xff0c;最早用在java上&#xff0c;但也可用于Android。与之类似的POI&#xff0c;因为依赖库众多&#xff0c;所以只能用于java&#xff0c;而不能用于Android。使用jxl需要在…

我接的是地啊,不,你接的是土!

作者&#xff1a;晓宇&#xff0c;排版&#xff1a;晓宇微信公众号&#xff1a;芯片之家&#xff08;ID&#xff1a;chiphome-dy&#xff09;1、我接地了啊&#xff0c;电子设计中&#xff0c;接地是非常重要的&#xff0c;地可不等于土&#xff0c;哈哈&#xff0c;有效的接地…

nis服务器架设

一、NIS定义 NIS&#xff08;Network Information Service&#xff0c;网络信息服务&#xff09;也称YP(Yellow Pages)协议&#xff0c;是一个提供目录服务的RPC(远程过程调用)应用服务。通过它&#xff0c;就可以在网络上共享一个集中式的口令文件&#xff0c;从而大大简化客…

邻接矩阵-建立图

1.介绍图的相关概念 图是由顶点的有穷非空集和一个描述顶点之间关系-边&#xff08;或者弧&#xff09;的集合组成。通常&#xff0c;图中的数据元素被称为顶点&#xff0c;顶点间的关系用边表示&#xff0c;图通常用字母G表示&#xff0c;图的顶点通常用字母V表示&#xff0c;…

html判断坐标,js判断鼠标位置是否在某个div中的方法

本文实例讲述了js判断鼠标位置是否在某个div中的方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;div的onmouseout事件让div消失时&#xff0c;会出现这样的情况&#xff0c;就是当鼠标移至div中的其它内容时&#xff0c;此时也判定为离开div&#xff0c;会触发 on…

Busybox 制作文件系统并用 Qemu 启动编译的内核镜像

编译内核操作&#xff1a;https://blog.csdn.net/assiduous_me/article/details/120938556安装Busybox操作&#xff1a;https://blog.csdn.net/assiduous_me/article/details/120939319syzDESKTOP-B10G93S:~$ ls -l total 20 drwxr-xr-x 44 syz syz 4096 Oct 26 22:05 busybox …

深入浅出Win32多线程程序设计之线程通信

简介  线程之间通信的两个基本问题是互斥和同步。  线程同步是指线程之间所具有的一种制约关系&#xff0c;一个线程的执行依赖另一个线程的消息&#xff0c;当它没有得到另一个线程的消息时应等待&#xff0c;直到消息到达时才被唤醒。  线程互斥是指对于共享的操作系统…

Kafka Producer源码简述

接着上文kafka的简述&#xff0c;这一章我们一探kafka生产者是如何发送消息到消息服务器的。 代码的入口还是从 kafkaTemplate.send开始 最终我们就会到 org.springframework.kafka.core.KafkaTemplate#doSend方法 这里的关键就是 org.apache.kafka.clients.producer.Producer#…

原来搞单片机也可以面向对象

摘要&#xff1a;在看别人单片机程序时&#xff0c;你也许是奔溃的&#xff0c;因为全局变量满天飞&#xff0c;不知道哪个在哪用了&#xff0c;哪个表示什么&#xff0c;而且编写极其不规范。自己写单片机程序时&#xff0c;也许你也是奔溃的。总感觉重新开启一个项目&#xf…

Cs代码写在html页面哪里,当用于在details.cshtml页面上查看时,我用什么代码来查看模型中的项目列表?...

我正在尝试查看销售订单中的产品列表。它看起来像这样&#xff1a;名称OrderDate OrderTotal Products购买<<被带来的产品。销售订单连接到SalesorderProduct的桥接表。有什么建议。我知道它想要遍历模型&#xff0c;但无法弄明白。Html.DisplayFor(model > model.Cus…

雅虎年底升级IPv6标准 100万用户恐受影响

雅虎年底升级IPv6标准 100万用户恐受影响 http://network.51cto.com 2011-01-20 17:34 佚名 cnBeta 我要评论(0) 据国外媒体报道&#xff0c;雅虎计划今年年底将主站点Yahoo.com升级为IPv6标准&#xff0c;此举可能会使约100万用户在初期无法访问雅虎站点。据国外媒体报道&…