博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博客作业06--图
阅读量:5919 次
发布时间:2019-06-19

本文共 1944 字,大约阅读时间需要 6 分钟。

1.学习总结

1.1图的思维导图

1233806-20180618164437978-295484697.png

1.2 图结构学习体会

深度遍历算法:

访问顶点v

依次从v的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v有路径想通的顶点都被访问;

若此时图中尚有顶点未被访问,则从一个未被访问的顶点出发,重新进行深度优先遍历,直到图中所以顶点均被访问过为止;

通过递归实现

广度遍历算法:

访问顶点V

访问V的所有未被访问的邻接点;

依次从这些邻接点出发,访问它们所有未被访问的邻接点,直到图中所以访问过的顶点的邻接都被访问;

通过队列实现

Prim和Kruscal算法:

最小生成树可以使用prim算法和Kruscal算法实现,对于稀疏图来说,用Kruscal算法效率更好,加上并查集可对其进行优化;

Kruscal在所有边中不断寻找最小的边,prim在U和V两个集合之间寻找最小的连接,共同点是构造过程中都不能形成环;

Prim适合稠密图,因此通常使用邻接矩阵存储,而Kruscal多用邻接表,稠密图Prim>Kruscal,稀疏图Kruscal>Prim;

Prim适合点少边多,Kruscal适合边多点少;

Dijkstra算法:

贪心算法,最短路径问题

以起始点为中心向外层层扩展,直到扩展到终点为止;

拓扑排序算法:

只有有向无环图才可以进行拓扑排序

从AOE网中选择一个没有前驱的顶点(该顶点的入度为0)并且输出它;

从网中删去该顶点,并且删去从该顶点发出的全部有向边;

重复上述两步,直到剩余的网中不再存在没有前驱的顶点为止;

2.PTA实验作业

2.1 题目1:图着色问题

2.2 设计思路

定义变量i,j    定义变量 v顶点数 e边数 k颜色数     定义变量 a,b为两个端点的编号 num为方案的个数   数组color[]    vector和 set    输入v e k    for  i=0 to  e    输入a  b并添加到容器末尾    输入 num    while(num--)      bool flag=true        for i=1 to v            输入数组color[i]并插入容器        if  容器大小 不等于k          flag=false        for i=1 to v            for  j=0  to  mp[i].size()             if color[i]等于color[mp[i][j]]            flag=false                    break            if非flag break                       if flag           输出Yes        else        输出No

2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)

1233806-20180617212145674-1845333112.png

1233806-20180617212207546-342648734.png

2.4 PTA提交列表说明。

1233806-20180617212051518-1777634212.png

2.1 题目2:排座位

2.2 设计思路

find()    join(int x,int y)        将两个集合合并    定义fx=find(x);    定义 fy=find(y);    if不在一个集合        pre[fx]=fy;     same(int x,int y)       判断两个元素是否在同一个集合中    if  在        返回 true;    else        返回 false     main()    定义 a,b,c,n,m,t,i;    输入n m t    for  i=1 to  n        pre[i]=i;    for  i=1 to m            输入 a b c        记录直接的对应关系        if c等于1            调用函数join(a,b)判断间接关系    for  i=1 to t        输入 a b        if 是朋友 输出 No problem        else if 有敌对也有共同朋友  输出OK but...        else if 不是朋友,但也不敌对 输出OK        else if 敌对关系No way     end

2.3 代码截图

1233806-20180618161357097-1296706746.png

1233806-20180618161422762-1230401048.png

1233806-20180618161449299-781427642.png

2.4 PTA提交列表说明。

1233806-20180618161533724-497627853.png

2.1 题目3:

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

3.1 PTA排名

1233806-20180617212957076-1175949267.png

3.2 我的总分:140

4. 阅读代码(必做,1分)

转载于:https://www.cnblogs.com/danzhai/p/9193757.html

你可能感兴趣的文章
[Flink]Flink1.3 指南四 命令行接口
查看>>
王者程序员整理的Python网络爬虫和web的系统学习路线图
查看>>
Spring Cloud Alibaba 发布 GA 版本,新增 4 个模块
查看>>
SQL server数据库之触发器
查看>>
Linux Kernel 去年净增 87 万行代码,共有近 75000 个提交
查看>>
spring boot 2.0 源码分析(五)
查看>>
go-fastdfs v1.2.4 发布,高性能、高可靠分布式文件系统
查看>>
HotKeys.js 3.6.2 发布,支持三个键组合快捷键
查看>>
java TreeMap源码解析
查看>>
Asp.Net Web API中使用Session,Cache和Application的几个方法
查看>>
5个精致的 CSS 框架,你都知道么?
查看>>
ASP.NET MVC5 实现分页查询
查看>>
UG/NX8.0 二次开发与Visual Studio的配置
查看>>
Pycharm Professional Edition 激活码和破解步骤
查看>>
SMB - DNS Server 域名服务器配置与管理(四)
查看>>
PostgreSQL 时间点恢复(PITR)时查找wal record的顺序 - loop(pg_wal, restore_command, stream)
查看>>
技术杂谈:HTTPS Explained - 1、白话基础概念
查看>>
CentOS7.X搭建MySQL集群(互为主从)
查看>>
功能机也不放过,谷歌或为 Chrome 提供非触控模式
查看>>
开源就意味着好吗?AMD 驱动烂 VS AMD 驱动不烂
查看>>