博客作业--图
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型骨牌不得重叠覆盖。