博客作业--图

1.学习总结

1.1图的思维导图

1.2 图结构学习体会

1.对于n个顶点e条边的图来说,邻接矩阵的方式访问需要O(n2)的时间;对于邻接表来说,需要O(n+e)时间。
显然对于点多边少的稀疏图来说,邻接表结构使得算法在时间效率上大大提高。

2.广度优先遍历和深度优先遍历的时间复杂度是一样的。邻接矩阵访问时间为O(n2),邻接表访问时间为O(n+e)。

比较:深度优先遍历更适合目标比较明确,以找到目标为主要目的的情况,而广度优先更适合在不断扩大遍历范围时找到相对最优解的情况。

3.对比两个算法,克鲁斯卡尔算法主要是针对边来展开,边数少时效率会非常高,所以对于稀疏图有很大的优势;而普里姆算法对于稠密图,即边数非常多的情况会更好一些。

2.PTA实验作业

1 题目1:图着色问题

2 设计思路

3 代码截图

4 PTA提交列表说明。

错误原因是最终染色的颜色数目小于等于即可

解决方法:颜色数目改为恰好相等

1 题目2:排座位

2 设计思路

1和2是朋友,2和3是朋友。1和3之间就连通了,题目说朋友的朋友也是朋友,所以1和3也是朋友。我们用数组a[]表示下标对应的下一个点多少。例如图  a[1]=2,a[2]=3,     每个点都有自己的下一个点。当下一个点没有了,找不到了,他就是最后一个点,所有的点只要能找到最后这个点的都是朋友

例如现在加进来一个5,5和3是朋友。a[5]=3,虽然a[1]=2,一直找到尽头:a[1]=a[2]=3;所以5和1也是朋友

3 代码截图

4 PTA提交列表说明

错误原因是刚开始没注意到朋友的朋友也是朋友

解决方法将朋友的朋友作为朋友

 

1 题目3:公路村村通

2 设计思路

用Prim算法生成最小生成树,通过判断最终最小生成树的结点个数是否为顶点个数(即边数为顶点个数-1),如果是,则可以生成最小生成树,能够做到村村通,如果不是,则不行。 

3 代码截图

4 PTA提交列表说明

错误原因是刚开始没有注意到公路是从1号开始的

解决方法是由于这里的公路编号从1开始,因此我在初始化领接矩阵的时候也是选择从下标1开始赋值,方便后续操作

3.截图本周题目集的PTA最后排名

1 PTA排名

2 我的总分:2.5分

4. 阅读代码

 在一个2^k * 2^k个方格组成的棋盘中,恰有一个方格与其它方格不同,称该方格为一特殊方格,且称该棋盘为以特殊棋盘。

    在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格之外的所有方格,且任何2个L型骨牌不得重叠覆盖。

 

 

posted @ 2018-06-18 21:30  MangoWu  阅读(211)  评论(1编辑  收藏  举报