前几天去面试的一道题目,没做出来,郁闷,大家帮看看

gerald_xiao 2009-06-24 07:13:04
加精




题目:

给定一个有n个顶点的图G=(V,E),请设计一个算法计算G中两两连接的4个顶点(即四边形)的数目,

如果没有,输出NOT EXIST,说明你所使用的方法以及时间和空间复杂度。


附录:
由于去的是一家从事算法开发的公司,待遇很不错,但上面的一道题目,偶没做出来,郁闷,大家帮看看。

如果有机会复试,肯定要分析初试的题目的。大家帮帮忙,不胜感激!


...全文
3475 200 打赏 收藏 转发到动态 举报
写回复
用AI写文章
200 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellodota121 2010-04-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 litaoye 的回复:]
找出所有点与点之间,长度为2的路径,设A到B的路径有N条,则C(n,2)就是对应的四边形个数。

跟9楼的方法好像类似,这两天总是别人说了,我才想起来。
[/Quote]
顶。
超级大笨狼 2010-04-15
  • 打赏
  • 举报
回复
图的结构建立完毕,可以删除掉一些度数为1的节点,因为它怎么连都不会构成四边性。
超级大笨狼 2010-04-15
  • 打赏
  • 举报
回复
其实也未必非用邻接表这一种数据结构,可以专门为这个问题实用另外一种结构。

顶点类 V 属性包括:连接的顶点集合List<V>
图类 G 属性包括:顶点集合List<V>
路径类 P 属性包括:顶点集合List<V>

我就用这个找过图里的所有环,只是代码是.Net的,类文件分在几处,粘贴出来大家看着累。
为了程序逻辑还需要增加写辅助的字段。
我一般除了List<V>外还要做一个或几个Dictionnary<T>就是Hash表,用来辅助搜索的。
牺牲数据准备的复杂度,提高运行的速度。

类创造好了,不论是深度优先还是广度优先搜索都能找到所有路径。判断其有无环,环大小,路径长度等。

退出条件设置为:
1,找到了终点。
2,或者找了环的封闭节点。
decoupling 2010-04-14
  • 打赏
  • 举报
回复
人家是算法公司咯...
wjz748305545 2010-04-13
  • 打赏
  • 举报
回复
[Quote=引用 58 楼 thinkc 的回复:]
这个不是计算机题,是数学题,高中的排列组合,C(n,6)
[/Quote]
‘’‘;、。。。。。
qishibo1990 2010-04-11
  • 打赏
  • 举报
回复
个人认为用深度优先遍历,用数组记录结点,到第四个结点的时候判断是否相连,具体的算法没写好,不过楼上的高手们真的很厉害,向你们致敬!
liulongsnow 2010-04-11
  • 打赏
  • 举报
回复
定一下~
liu_siat 2010-04-11
  • 打赏
  • 举报
回复
C(n,4),n变大时,将无法求解,是一个NP难问题
life_is_story 2010-04-10
  • 打赏
  • 举报
回复
mark学习下。。
八戒爱飘柔 2010-04-10
  • 打赏
  • 举报
回复
好多高手啊,观望!
forestkeeper1 2010-01-09
  • 打赏
  • 举报
回复
这不是某年国家集训队论文里讨论的题目么,奇怪居然没人发现

做法有nlogn的,黑书里有详细讲,PKU上也有对应题目
FrankArmageddon 2010-01-08
  • 打赏
  • 举报
回复
给你提供一个新的想法……
任意四边形一定有四个点,即两个没有重复点的线段,那么只要找整个完全连通图中的任意两个线段满足条件:
1、没有相交(哪怕端点在另一条线段上也不行。否则构不成四边形,除非你自己加根线)
2、从两个顶点出发,分别可以找到另两个端点是相邻的。
wilsonshanghai 2010-01-08
  • 打赏
  • 举报
回复
看来要好好学学图论了!学习一下!
g0tazu 2010-01-07
  • 打赏
  • 举报
回复
jf先 有点数学问题的味道
jiangbin00cn 2010-01-06
  • 打赏
  • 举报
回复

1. 以任意顺序获取定点的序列 a[n]
2. 穷尽 i=0--n-1 --计算次数 n
获取a[i+1]--a[n-1]中与 a[i] 相连的节点,假设为b[m],
穷尽 j=0--m-1 ---计算次数 m
k=j--m-1
判断同时与b[j],b[k]相连的节点个数(不能为a[i])
3. 累加所有个数

若每个节点平均与k个节点相连,计算复杂度为o(nk^2)
重返IT路 2010-01-06
  • 打赏
  • 举报
回复
用深度搜索
DuoMx 2010-01-06
  • 打赏
  • 举报
回复
不是一個搜索樹的問題嗎?
Audio_Wang 2010-01-06
  • 打赏
  • 举报
回复
好难,先mark了
kunlamp 2010-01-05
  • 打赏
  • 举报
回复
搞晕了
yexiaoya 2010-01-04
  • 打赏
  • 举报
回复
不懂
加载更多回复(177)

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧