HDU-5215 Cycle 无向图判奇环偶环】的更多相关文章

题意 题目链接 \(T\)组数据,给出\(n\)个点\(m\)条边的无向图,问是否存在一个奇环/偶环 Sol 奇环比较好判断吧,直接判是否是二分图就行了.. 偶环看起来很显然就是如果dfs到一个和他颜色不相同的点,说明出现偶环. 但事实上有一种情况没考虑到. 像这样 显然1 2 4 5会形成一个环 显然该偶环是两个奇环去掉中间的部分构成的. 直接在搜到的奇环上打标记即可,如果一个点被访问了两次,说明存在一个偶环 #pragma comment(linker, "/STACK:102400000,…
题意:给一个无向图,判断这个图是否存在奇环和偶环. 解法:网上有一种只用dfs就能做的解法,但是我不太理解. 这里用的是比较复杂的.首先奇环很简单可以用二分图染色判断.问题是偶环怎么判断?这里我们想,一旦有两个环共享了一些点,那么这两个环一定能组成一个偶环. 那么我们考虑tarjan找出所有桥删去,那么对于一个边双联通分量,这个边双只要有多于一个环就必定存在偶环.即当且仅当这个边双为一个奇环的情况下才不存在偶环,其他情况都会有偶环. 所以一旦这个边双不是单环,就必定存在偶环. 那么怎么判断这个是…
题意:找到一个图中是否含有奇环和偶环 题解: 1.用了两种发法.一个就是跟bc给的答案一样,先求弱联通分量.再在环中找奇偶环 2.我想到的一个略微省些代码量的方法.边求联通分量,边推断是否含有奇环偶环.奇环一定能推断出来,可是偶环 可能被两个奇数环取代而没有在遍历中发现 3.解决问题用到鸽巢定理.先推断有n个联通分量.假设有m个奇环(m > n)则一定有两个奇环在一个连通分量 中,两个奇环可以变成一个偶环,(有个地方须要注意就是:对于单点.当作是一个奇环处理). 总结: 1.開始想到的解题方法跟…
题目链接 \(Description\) 给定\(n\)个点\(m\)条边的无向图,问是否存在一个长度为奇数/偶数的简单环. \(n\leq 10^5,m\leq 3\times 10^5\). \(Solution\) 容易想到DFS时直接黑白染色.但是只这样会遗漏一种偶环. 对于奇环黑白染色即可,二分图一定不存在奇环,存在奇环一定不是二分图. 对于偶环,因为两个奇环如果有至少一个公共点,它们都去掉公共部分后奇偶性仍相同,就会形成偶环. 所以对于奇环暴力在点上打标记即可. 也可以Tarjan缩…
http://acm.hdu.edu.cn/showproblem.php?pid=3478 题意 给一个无向图和小偷的起点,小偷每秒可以向相邻的点出发,问有没有一个时间点小偷可能出现在任何点. 分析 首先图得要是联通的,由于是无向的,那么只需记录图中是否存在悬挂点(度为0),存在的话就不联通了,输出NO.只要图是二分图,小偷就不可能在某一时刻可能出现在任意位置,因为如果是二分图,在移动时必然是从一类结点走向另一类,这样任何时刻都存在一个走不到的点.于是用染色法判断是否为二分图即可.此外,还有判…
Cycle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 865    Accepted Submission(s): 241 Problem Description Ery is interested in graph theory, today he ask BrotherK a problem about it: Given…
题意: 给你一幅图,给你一个起点,然后问你存不存在一个时刻,所有点可以在那个时刻到达. 思路: 这幅图首先是联通的: 如果出现奇数环,则满足在某一时刻都可能到达: 然后判断奇数环用二分图性质搞也是神奇... #include<bits/stdc++.h> using namespace std; #include<bits/stdc++.h> using namespace std; /* 题意: 使某一时刻到达该图任意顶点: 1.图是联通的, 2.无向图的每一个顶点必须保证能够在…
[POJ 2942]Knights of the Round Table(双联通分量+染色判奇环) Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 11661   Accepted: 3824 Description Being a knight is a very attractive career: searching for the Holy Grail, saving damsels in distress, an…
POJ 2240 Arbitrage / ZOJ 1092 Arbitrage / HDU 1217 Arbitrage / SPOJ Arbitrage(图论,环) Description Arbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For exa…
function PointFloat(src, pos) { return Math.round(src * Math.pow(10, pos)) / Math.pow(10, pos); } //保留小数位数 四舍六入奇进偶舍 function fomatFloat(src, pos) { var numArray, resultSymbol = ""; if (src < 0) { resultSymbol = "-"; } if (pos == &qu…