图论
123
小鱼朵~
计算机小废宅
展开
-
1013 Battle Over Cities (25 分)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar原创 2021-09-08 14:54:02 · 414 阅读 · 0 评论 -
1021 Deepest Root
1021 Deepest Root题目大意给出n个结点(1~n)之间的n条边,问是否能构成一棵树,如果不能构成则输出它有的连通分量个数,如果能构成一棵树,输出能构成最深的树的高度时,树的根结点。如果有多个,按照从小到大输出核心思路对每一个结点编号进行深度优先搜索,记录图有几个连通分量,将从结点编号1开始深搜得到的最深处结点编号们逐一放到集合s顺便记录其中第一个结点的编号s1。注意:对每一个结点编号进行深度优先搜索,得到的是记录连通分量个数、所有连通分量中最深的那个连通分量深度 及其 最深处的结点原创 2021-08-17 17:23:18 · 162 阅读 · 0 评论 -
1122 Hamiltonian Cycle
1122 Hamiltonian Cycle题目大意给定一个图,判断给定的路径是不是哈密尔顿路径。基本思路在每一组判例中定义一个 vector v;和set s;。把这组判例读入并放入这两个容器中。.设置falg1 判断节点是否多走、少走、或走成环。如果集合s的大小不为n 或者 数组大小不为k 或者 数组首尾元素不一致,flag1修改为false。设置flag2 判断这条路能不能走通。每次取数组v中相邻的两个元素,在图中判断这两个元素之间是否有边,如果有边不存在,置flag2为false。原创 2021-08-21 12:07:55 · 74 阅读 · 0 评论 -
1126 Eulerian Path
1126 Eulerian Path题目大意如果一个连通图的所有结点的度都是偶数,那么它就是Eulerian,如果除了两个结点的度是奇数其他都是偶数,那么它就是Semi-Eulerian,否则就是Non-Eulerian基本思路用邻接表存储图,判断每个结点的度(即每个顶点i的v[i].size())是多少即可得到最终结果。注意:图必须是连通图,所以要用一个深搜判断一下连通性,从结点1开始深搜,如果最后发现统计的连通结点个数cnt != n说明是不是连通图,要输出Non-Eulerian详细数据结构原创 2021-08-20 21:05:19 · 146 阅读 · 0 评论 -
1134 Vertex Cover
1134 Vertex Cover题目大意:给n个结点m条边,再给k个集合。对这k个集合逐个进行判断。每个集合S里面的数字都是顶点编号,求问整个图所有的m条边两端的结点,是否至少一个结点出自集合S中。如果是,输出Yes否则输出No核心思路利用vector v[MAXV]保存某个顶点属于的某条边的编号,比如a b两个结点构成的这条边的编号为0,则v[a].push_back(0),v[b].push_back(0)——表示a属于0号边,b也属于0号边。这样,对每一个集合做判断,遍历集合中的每一个元素原创 2021-08-19 12:04:20 · 133 阅读 · 0 评论 -
1142 Maximal Clique
1142 Maximal Clique题目大意clique是一个点集,在一个无向图中,这个点集中任意两个不同的点之间都是相连的。maximal clique是一个clique,这个clique不可以再加入任何一个新的结点构成新的clique。点编号从1~n,给出m条边,以一对结点编号的方式给出。然后给出m条询问,每个询问是一个点集合,问这个点集合是否是maximal clique、是否是clique。基本思路在每一组测试样例中,定义一个数组v存放所有测试样例中的元素,数组hashtable表示该顶点原创 2021-08-21 15:53:43 · 497 阅读 · 0 评论 -
1146 Topological Order (25 分)
1146 Topological Order (25 分)题目大意给一个有向图,判断给定序列是否是拓扑序列。基本思路对于每一组测试样例,复制一份入读数组innum。然后按序列顺序读入每一个顶点,如果当前顶点的入度数量不为0,说明该序列不是拓扑序列(istop置为0),然后遍历一遍当前顶点的出度顶点,把该出度顶顶点的入度减一。在读完所有该序列的顶点之后,判断一下序列是否是拓扑序列(根据istop的值),如果不是,输出当前序列的序列编号。代码#include <cstdio>#incl原创 2021-09-15 21:42:39 · 87 阅读 · 0 评论 -
1150 Travelling Salesman Problem
1150 Travelling Salesman Problem题目大意给出一条路径,判断这条路径是不是这个图的旅行商环路、简单旅行商环路和非旅行商环路。基本思路如果给出的路径存在某两个连续的点不可达第一个结点和最后一个结点不同或者这个路径没有访问过图中所有的点,那么它就不是一个旅行商环路。如果满足了旅行商环路的条件,那么再判断这个旅行商环路是否是简单旅行商环路,即是否访问过n+1个结点并且源点访问两次。最后输出这些旅行商环路中经过的路径最短的路径编号和路径长度。代码具体数据结构和相似思路请看代原创 2021-08-23 22:17:59 · 145 阅读 · 0 评论 -
1154 Vertex Coloring
1154 Vertex Coloring题目大意给定n个顶点,m条边的图。给定每个顶点的着色情况,判断此图是否是k-coloring图。思路采用邻接矩阵的方式存储这一张图定义数组color存放每个顶点的着色,集合s统计颜色数量。对于每一组判断,判断有没有在一条边两端的顶点的着色是相同的,如果是,它就不满足k-coloring图,如果所有边两端的顶点的着色都不同,它就是k-coloring图。代码#include <iostream>#include <algorithm原创 2021-08-28 10:45:44 · 154 阅读 · 0 评论