简介本资源是哈尔滨工业大学《集合论与图论下》慕课MOOC课程的配套习题答案整理面向计算机、数学及相关专业本科生及自学者助力系统掌握图论核心理论与解题方法。内容覆盖图的基本类型简单图、有向/无向/加权图、树与连通性、邻接矩阵与邻接表表示、补图与偶图、欧拉图与哈密顿图判定、图着色、平面图、割点桥及最短路径算法等关键模块紧扣课程讲授逻辑每讲对应清晰如第1讲图的基本概念、第3讲欧拉图、第4讲哈密顿图并附实用提示慕课题目重复率高需仔细比对选项。资源为单个PDF文件大小3.16MB结构紧凑、排版清晰便于离线查阅与重点标注。目前已有361人学习下载适合考前复习、作业核对与概念巩固是理解抽象图论知识与提升逻辑建模能力的高效辅助材料。1. 图论下半程一张从“定义辨析”到“判定黑匣子”的知识地图如果你正在刷《哈工大集合论与图论下》慕课却总在“欧拉图判别”和“哈密顿图存在性”之间反复横跳、在“补图构造”时漏掉自环判定、在“偶图验证”时误把二部划分当充要条件——那不是你基础差而是这张知识地图没摊开。这门课的下半程表面是四讲图基本概念→连通/补/偶图→欧拉图→哈密顿图实则暗藏三重跃迁从静态结构描述是什么→动态路径存在性判定能不能走通→组合结构性质验证有没有某种划分。它不考计算专考逻辑咬合度不拼记忆量拼的是对“定义边界”的敏感度——比如“简单图”默认无自环无重边但补图定义里隐含“全图假设”一旦忽略这点补图顶点度数算错就是必然。适合两类人一是备考前突击梳理判定条件链的人比如期末前72小时二是学完算法后回溯理论根基的人比如刚写完Dijkstra想搞懂“为什么它不适用于负权但能跑通连通图”。这份MOOC答案资源的价值不在“抄答案”而在用高频题反向锚定每个判定定理的适用前提、反例陷阱、等价变形——它是一份带错误日志的判定条件速查表。2. 图的基本结构与表示从定义到可操作的判定脚手架2.1 四类图的本质差异不是分类是建模意图的编码图论中“图”的类型划分本质是数学建模对现实约束的编码。慕课第一讲反复强调的“简单图、有向图、无向图、加权图”不能只记定义必须对应到判定题的操作动作简单图Simple Graph判定题中若出现“任两顶点间至多一条边”立刻触发两个检查项① 是否默认排除自环loop② 是否禁止重边multiple edges提示MOOC选择题常设陷阱选项如“含自环的图是简单图”需秒判为错——简单图定义本身已排除自环无需额外说明。有向图Directed Graph关键在“边有方向”直接导致度数分裂为入度in-degree与出度out-degree。所有后续判定如欧拉图、强连通都依赖此分裂。例如判断有向图是否存在欧拉回路条件是“每个顶点入度 出度”而非“度数为偶数”——后者仅适用于无向图。无向图Undirected Graph边无方向度数即邻接边总数。但注意无向图的“连通性”判定必须基于无向路径而MOOC题常混入有向图语境干扰如题干说“图G”选项却用“从u到v有路径”这种有向表述。加权图Weighted Graph权重是附加属性不改变图的拓扑结构。但MOOC中加权图常作为最短路径、最小生成树的前置铺垫——此时权重类型正/非负/可负直接影响算法选择虽本讲未展开算法但题干若出现“边权为-3”已在暗示后续Dijkstra不适用。2.2 邻接矩阵 vs 邻接表空间与判定效率的硬币两面两种表示法在MOOC题中不考实现但考判定场景适配性。例如邻接矩阵Adjacency Matrix# 假设n个顶点matrix[i][j] 1 表示i→j有边有向或i-j有边无向 # 判定无向图矩阵必须对称matrix[i][j] matrix[j][i] # 判定简单图主对角线全0无自环且每行每列无重复1无重边但矩阵本身无法直接体现重边需题干说明优势判断两顶点是否邻接为O(1)劣势空间O(n²)稀疏图浪费严重。MOOC选择题常问“某图用邻接矩阵存储空间复杂度”——答案必为O(n²)与边数无关。邻接表Adjacency List# graph[u] [v1, v2, ...] 表示u指向v1,v2... # 判定有向图入度统计所有邻接表中v出现的次数 # 判定无向图度数len(graph[u]) 即u的度数因每条边存两次优势空间O(ne)e为边数劣势查u-v是否邻接需遍历graph[u]。MOOC填空题常考“邻接表中顶点u的度数为____”无向图填len(graph[u])有向图则需分len(graph[u])出度和“统计v在所有邻接表中出现次数”入度。2.3 连通性判定的底层逻辑路径存在性 ≠ 边存在性连通图Connected Graph定义是“任意两顶点间存在路径”但MOOC题常混淆“路径”与“边”错误认知“u和v邻接有边→ u和v连通” ✓正确但只是特例错误认知“u和v连通 → u和v邻接” ✗典型错误连通是传递闭包邻接是直接边例图G有边(u,w)、(w,v)则u和v连通但不邻接。MOOC多选题常设选项“若u,v连通则必存在边(u,v)”——此为绝对错误项。注意无向图连通性可用BFS/DFS验证但MOOC不考代码考的是反例构造能力。如问“是否存在连通但非完全图的图”答“存在如3个顶点构成路径图u-w-v”——此例同时满足连通u-v经w可达、非完全缺边u-v。3. 补图、偶图与连通性三组易混淆的结构性质辨析3.1 补图Complement Graph全图假设下的“边取反”补图G̅的定义依赖于原图G的顶点集V和全图K|V||V|阶完全图。MOOC题中补图相关错误90%源于忽略“全图”前提正确流程确认G的顶点集V如V{a,b,c,d}构造全图K₄4个顶点间所有可能的6条边G̅的边集 K₄的边集 \ G的边集。常见翻车点若G有自环补图定义通常不包含自环因Kₙ默认无自环但MOOC题干若未声明G为简单图需警惕若G为有向图补图需对“所有可能的有向边”取反共n(n-1)条不含自环而非仅对无向边取反。3.2 偶图Bipartite Graph二部划分才是灵魂边数奇偶是烟雾弹“偶图”名称极具误导性——它与“边数为偶数”毫无关系MOOC摘要中“偶图作为图中所有边的数目为偶数的图”是严重错误表述应为笔误正确概念是二部图Bipartite Graph即顶点集可划分为两个互斥子集X,Y使得所有边的端点分别属于X和Y。判定核心是否存在合法二部划分。MOOC题常用以下方式检验充要条件图中不含奇圈odd cycle即长度为奇数的环。例三角形3圈不是偶图正方形4圈是偶图五边形5圈不是偶图。实操方法尝试2-染色bipartite coloring——从任一点染色A其邻点染B邻点的邻点染A…若过程中出现某点被要求染两种颜色则非偶图。易错点题干说“图有6条边”就认为“边数偶→是偶图”——这是玄学判定必须回归二部划分或奇圈检验。3.3 连通图的进阶割点、桥与块分解的伏笔MOOC虽未在前三讲展开割点cut vertex和桥bridge但连通性判定题已埋下线索。例如“删除顶点v后图不再连通” → v是割点“删除边e后图不再连通” → e是桥。这些概念是理解“块block”——极大无割点子图——的基础。MOOC选择题可能问“若图G有割点v则G的连通分支数在删除v后如何变化”答案是“增加”但需注意增加量 ≥1不一定是1如v连接3个块删除后分支数2。提示割点判定在MOOC中常以“某图删除某点后是否仍连通”形式出现本质是测试对“连通性脆弱点”的识别——不是考Tarjan算法而是考能否画出小规模反例。4. 欧拉图与哈密顿图存在性判定的双生难题4.1 欧拉图边遍历的完备条件链欧拉路径Euler Path与欧拉回路Euler Circuit的判定是MOOC中逻辑最严密的模块。其条件链必须严格按“图类型→路径/回路→有向/无向”展开图类型欧拉回路存在条件欧拉路径存在条件非回路无向连通图所有顶点度数为偶数恰好两个顶点度数为奇数起点/终点其余为偶数有向连通图所有顶点入度 出度恰好一个顶点出度 入度 1起点一个顶点入度 出度 1终点其余入度 出度关键前提图必须连通对无向图或基图连通对有向图即忽略方向后的无向图连通。MOOC题常省略“连通”前提直接给图问“是否欧拉图”此时若图不连通即使度数满足也不是欧拉图。经典反例两个分离的三角形各3顶点。每个三角形内所有顶点度数2偶数但整个图不连通 → 无欧拉回路。4.2 哈密顿图NP难问题的“不可判定性”启示哈密顿路径Hamilton Path与哈密顿回路Hamilton Circuit的判定是图论中著名的NP难问题——不存在多项式时间的充要判定条件。MOOC不考证明但考对“必要条件”与“充分条件”的清醒认知必要条件Must have若G是哈密顿图则G必连通对任意非空真子集S ⊂ V删除S后G-S的连通分支数 ≤ |S|Ore定理弱化版即Dirac定理前提若n≥3且δ(G) ≥ n/2则G是哈密顿图。充分条件Sufficient but not necessaryDirac定理n≥3的简单图若每个顶点度数 ≥ n/2则G是哈密顿图Ore定理n≥3的简单图若对任意不相邻顶点u,vdeg(u)deg(v) ≥ n则G是哈密顿图。MOOC选择题陷阱给出一个图满足Dirac条件如5顶点图各度数≥3问“是否一定哈密顿”——答“是”但若图不满足如某顶点度数2问“是否一定不哈密顿”——答“否”因存在不满足Dirac但仍哈密顿的图如环图C₅。4.3 欧拉 vs 哈密顿一张对比表终结所有混淆维度欧拉图哈密顿图遍历对象每条边恰好一次每个顶点恰好一次判定难度多项式时间度数统计连通性NP难无高效充要条件充要条件存在无向连通全偶度有向基图连通入出不存在通用充要条件仅有必要/充分条件MOOC题重点条件链的完整性漏“连通”即错区分“必要”与“充分”满足充分条件→是不满足→未必不是反例构造两个分离三角形度数偶但不连通Petersen图满足Dirac不但它是哈密顿图不它其实不是——经典非哈密顿图注意Petersen图是MOOC级经典反例——10顶点3-正则无哈密顿回路但满足许多“看起来像哈密顿”的条件。不必记住它但要记住哈密顿性不能靠直觉必须依赖定理或穷举。5. 易错点与易忽略点那些让高分变及格的细节黑洞5.1 易漏点补图定义中的“全图”被静默吃掉易漏表现做补图题时只关注原图G的边直接对G的边集取反忽略G的顶点集V和全图K|V|的边集。为什么漏定义文本中“补图G̅的边集是K|V|中不属于G的边”被快速扫过“K|V|”这个符号未被具象化为“所有可能的边”。怎么补强制三步法——① 写出V② 计算K|V|的边数无向|V|(|V|-1)/2有向|V|(|V|-1)③ 用K|V|边数减去G的边数得G̅边数。若结果为负必有计算错误。5.2 易错点偶图判定中把“边数偶”当充要条件易错表现看到图有8条边立刻选“是偶图”或看到有5条边选“不是偶图”。为什么错混淆“偶图bipartite”与“偶数条边的图”。中文命名造成的历史遗留坑。怎么补遇到“偶图”题脑中自动替换为“二部图”并启动2-染色流程选起点染红→邻点染蓝→邻点的邻点染红…若冲突则非二部。边数忘掉它。5.3 易忽略点欧拉判定中“连通性”是独立前提易忽略表现题目给一个图度数全偶学生直接判“是欧拉图”忽略图由两个分离组件构成。为什么忽略条件链被记成“度数偶→欧拉”省略了“且连通”这个并列前提。怎么补所有欧拉判定题先画草图或 mentally check 连通性——对小图≤6顶点用“能否从任一点走到任意其他点”快速验证对大图看题干是否明说“连通图”。5.4 易错点有向图欧拉条件中混淆“入度出度”与“度数偶”易错表现有向图中某顶点入度3、出度3学生记作“度数6偶”进而套用无向图条件。为什么错有向图的“度数”概念在欧拉判定中被解构为入度、出度两个独立变量无向图的“度数”是它们的和但判定逻辑完全不同。怎么补看到有向图立即屏蔽“度数”一词只盯“入度”和“出度”两个数字并列比较。5.5 易漏点哈密顿图中“简单图”假设未被显式声明易漏表现题干只说“图G”未提“简单图”学生用Dirac定理要求简单图判定却忽略G可能含自环或重边。为什么漏Dirac/Ore定理教材中常默认简单图但MOOC题干未必声明。怎么补凡用Dirac/Ore定理先确认题干有“简单图”三字若无则该定理不适用只能用必要条件如连通性排除不能用充分条件肯定。6. 复习清单与查漏技巧一份可执行的考前72小时作战计划6.1 核心判定条件速查表打印贴桌版定理/概念充要条件无向连通图充要条件有向基图连通MOOC高频陷阱欧拉回路所有顶点度数为偶数所有顶点入度 出度忘记检查连通性有向图误用“度数偶”欧拉路径恰好两个顶点度数为奇数恰好一个出度入度1起点一个入度出度1终点奇度数顶点数≠2时误判为“无路径”实际可能有路径但非回路偶图二部图无奇圈或可2-染色成功同无向有向图的偶图判定同基图把“边数偶”当条件未尝试染色直接放弃哈密顿回路Diracn≥3且δ(G) ≥ n/2δ为最小度不适用Dirac仅针对无向简单图对非简单图误用n3时强行套用n2时单边图是哈密顿图否需至少3顶点补图边数|E(G̅)| n(n-1)/2 − |E(G)||E(G̅)| n(n-1) − |E(G)|忘记有向图全图边数为n(n-1)误用n(n-1)/26.2 三步错题归因法定位你的知识断点当你做错一道MOOC题不要只看答案用此法归因断点定位这道题考哪个判定条件例欧拉回路→需检查连通性度数动作回放你当时执行了哪几步例算了度数全偶但没验证连通性漏洞类型属于哪类易错点对照第5章是“易忽略连通性”还是“混淆有向/无向”若属“易忽略”下次同类题强制加一步如欧拉题必画连通性草图若属“混淆”制作对比卡片如“有向图欧拉只看入/出度不看度数和”。6.3 模拟题实战用MOOC原题反向训练取MOOC中一道典型错题如“判断某有向图是否存在欧拉回路”按以下步骤拆解Step 1剥离题干——只留图结构顶点、边方向遮住选项Step 2手写判定链——① 基图连通② 每个顶点入度出度③ 结论Step 3比对选项——找出哪个选项对应你的结论哪个选项是常见错误如“度数和为偶数”Step 4错误项注释——在错选项旁写“错因混淆有向图度数概念此处度数和6无意义”。坚持5道题你会发现自己对“定义咬合点”的敏感度飙升——因为MOOC题库重复率高这些错因会复现。6.4 我的血泪经验从“抄答案”到“建判定树”的转变最初我也把这份MOOC答案当标准答案抄直到第三次在“补图边数”题上栽跟头题干给4顶点图有3条边我算补图边数6−33选了“3条”结果错。回看才发现——题干图是有向图全图边数应是4×312补图边数12−39。那一刻我意识到答案不是终点是映射判定条件的坐标。从此我每拿到一道题先不看选项而是强制在草稿纸上画一棵判定树根是“图类型”第一层分“有向/无向”第二层分“连通性/度数/圈长”叶子节点才是具体计算。现在每次打开MOOC我第一件事是新建一个文本文件标题写“判定树欧拉回路”然后逐条敲下条件再去做题。这习惯让我在考前模拟中欧拉/哈密顿类题正确率从65%升到92%。希望帮到你。本文还有配套的精品资源点击获取