boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - How to detect cycle with minimum space
相关主题
C++如何实现graph?
一道算法题求教,关于全连通图
define an adjacent matrix for a graph
HW Question: Bipartite Graphs
问个和图有关的算法问题
Valgrind报uninitialized value was created by a heap allocat (转载)
这道题贴过没有?
[合集] 快慢指针找链表中的环,别的步长行么?
[合集] 关于求解链表中环的起始位置问题
关于链表(Linked list)
相关话题的讨论汇总
话题: cycle话题: detect话题: minimum话题: space话题: graph
进入Programming版参与讨论
1 (共1页)
t*****k
发帖数: 390
1
For a undirected graph, how can we detect whether there is a cycle using
minimum space? We do not care how much time it will take and the graph is
stored in the form of adjacent lists.
THANKS!!
g*****g
发帖数: 34805
2
classical jump one jump two until match or end.

【在 t*****k 的大作中提到】
: For a undirected graph, how can we detect whether there is a cycle using
: minimum space? We do not care how much time it will take and the graph is
: stored in the form of adjacent lists.
: THANKS!!

t****t
发帖数: 6806
3
图,不是链表
定义一下cycle先?
a->b->d
a->c->d
算不算cycle?

【在 g*****g 的大作中提到】
: classical jump one jump two until match or end.
g*****g
发帖数: 34805
4
oh, sorry, 没注意看。他说的是无向图,环的定义是很明确的。
我觉得数边和顶点就够了。
对于每个连通图,如果边>=顶点,就有环。
问题大致等于图遍历如何使用空间最少。
我能想到的是DFS,标记所有度大于2的点。

【在 t****t 的大作中提到】
: 图,不是链表
: 定义一下cycle先?
: a->b->d
: a->c->d
: 算不算cycle?

t****t
发帖数: 6806
5
哦,无向图啊,看错了

【在 g*****g 的大作中提到】
: oh, sorry, 没注意看。他说的是无向图,环的定义是很明确的。
: 我觉得数边和顶点就够了。
: 对于每个连通图,如果边>=顶点,就有环。
: 问题大致等于图遍历如何使用空间最少。
: 我能想到的是DFS,标记所有度大于2的点。

t****t
发帖数: 6806
6
首先要看是不是连通的...

【在 g*****g 的大作中提到】
: oh, sorry, 没注意看。他说的是无向图,环的定义是很明确的。
: 我觉得数边和顶点就够了。
: 对于每个连通图,如果边>=顶点,就有环。
: 问题大致等于图遍历如何使用空间最少。
: 我能想到的是DFS,标记所有度大于2的点。

k*k
发帖数: 508
7
那 goodbug 的说法得改成,如果边的个数大于等于非零度的顶点个数

【在 t****t 的大作中提到】
: 首先要看是不是连通的...
t****t
发帖数: 6806
8
不对,非连通的图不一定有0度的顶点
要看有几个非连通的部分...

【在 k*k 的大作中提到】
: 那 goodbug 的说法得改成,如果边的个数大于等于非零度的顶点个数
k*k
发帖数: 508
9
就算是有几个部分非连通,如果边数大于非零度顶点数,也一定
会有环的吧。

【在 t****t 的大作中提到】
: 不对,非连通的图不一定有0度的顶点
: 要看有几个非连通的部分...

t****t
发帖数: 6806
10
当然,不过就不是充要条件了

【在 k*k 的大作中提到】
: 就算是有几个部分非连通,如果边数大于非零度顶点数,也一定
: 会有环的吧。

相关主题
HW Question: Bipartite Graphs
问个和图有关的算法问题
Valgrind报uninitialized value was created by a heap allocat (转载)
这道题贴过没有?
进入Programming版参与讨论
k*k
发帖数: 508
11
充分条件就够了啊,人家就想知道有没有环

【在 t****t 的大作中提到】
: 当然,不过就不是充要条件了
t****t
发帖数: 6806
12
可是不是必要条件,所以有时有环的会误判成没环

【在 k*k 的大作中提到】
: 充分条件就够了啊,人家就想知道有没有环
g*****g
发帖数: 34805
13
用链表实现的图根本不会有这样问题。

【在 t****t 的大作中提到】
: 可是不是必要条件,所以有时有环的会误判成没环
t****t
发帖数: 6806
14
为什么?

【在 g*****g 的大作中提到】
: 用链表实现的图根本不会有这样问题。
k*k
发帖数: 508
15
sorry,我糊涂了
我觉得这个条件就算是有几个不连通的部分,也还是充要条件

【在 t****t 的大作中提到】
: 可是不是必要条件,所以有时有环的会误判成没环
g*****g
发帖数: 34805
16
实现无向图的链表,所有连通子图至少要给你一个顶点吧,否则你怎么搜?
如果这些顶点本身是用一个链表连起来,那么就只有一个连通图,没有
这个问题。如果这些顶点是用一个数组给出的,那么对每个数组的元素
做一次检查,确保都有向外的连接即可。注意,如果有一条边连向自己也算环。
如果没有就排除完事。

【在 t****t 的大作中提到】
: 为什么?
c*****t
发帖数: 1879
17
题目说了,是 adjacency list 。因为有可能有几个分开的图,所以
我觉得得用 O(n) 的空间。但是用 clever engineering 的话,可以
只用 O (1) 。也就是改动这个 adjacency list,变成 direct graph 。
用多出来的空间做其中的步骤。然后解完再将 adjacency list 还原。

【在 g*****g 的大作中提到】
: 实现无向图的链表,所有连通子图至少要给你一个顶点吧,否则你怎么搜?
: 如果这些顶点本身是用一个链表连起来,那么就只有一个连通图,没有
: 这个问题。如果这些顶点是用一个数组给出的,那么对每个数组的元素
: 做一次检查,确保都有向外的连接即可。注意,如果有一条边连向自己也算环。
: 如果没有就排除完事。

t****t
发帖数: 6806
18
a--b--c--a
d
4个点,三个边,一个环

【在 k*k 的大作中提到】
: sorry,我糊涂了
: 我觉得这个条件就算是有几个不连通的部分,也还是充要条件

k*k
发帖数: 508
19
零度的点要排除的啊
三个点,三条边

【在 t****t 的大作中提到】
: a--b--c--a
: d
: 4个点,三个边,一个环

t****t
发帖数: 6806
20
a--b--c--a
d--e
你怎么不开窍呢...

【在 k*k 的大作中提到】
: 零度的点要排除的啊
: 三个点,三条边

k*k
发帖数: 508
21
开了,开了..

【在 t****t 的大作中提到】
: a--b--c--a
: d--e
: 你怎么不开窍呢...

1 (共1页)
进入Programming版参与讨论
相关主题
关于链表(Linked list)
[合集] 关于C++ STL的list的一个问题
[合集] 一个链表倒转的问题
[合集] 考考大家一道有关链表的问题
C++(非VC++) 删除链表时如何对指针操作? 在线等回复!谢谢!
单链表构成的循环链表比单链表有什么优势?
讨论 找单链表倒数m的节点 (转载)
好久没用C++了,想用静态变量写一个简单双向链表,一直报错
深受memory fragmentation毒害。少用长链表 (转载)
关于小公司招人的问题,我的想法
相关话题的讨论汇总
话题: cycle话题: detect话题: minimum话题: space话题: graph