算法导论实战(三)(算法导论习题第二十五、二十六章)

🌈 个人主页:十二月的猫-CSDN博客
🔥 系列专栏: 🏀算法启示录

💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 

目录

 前言

第二十五章

25.1-10

25.2-5

25.2-6

第二十六章

26.2-2

26.2-4

26.3-4(较难)

总结


 前言

算法导论的知识点学习将持续性更新在算法启示录_十二月的猫的博客-CSDN博客,欢迎大家订阅呀(反正是免费的哦~~)

实战篇也将在专栏上持续更新,主要目的是强化对理论的学习(题目来源:山东大学孔凡玉老师推荐)


第二十五章

25.1-10

问题描述:

给出一个有效算法来在图中找到最短长度的权重为负值的环路的长度(边的条数)

问题分析:

我们学过的所有图算法有贝尔曼福特、迪杰斯特拉、弗洛伊德以及一般动态规划求解多源最短路径算法。

在这里面迪杰斯特拉不允许有负值权重,贝尔曼福特仅仅能处理单源最短路径弗洛伊德相比于一般动态规划算法具有简洁明了、运行稳定等优点,所以我们选用弗洛伊德算法来处理。

问题求解:

明确一个点:

1、如果dist[i,i]<0,那么表示图中存在负值环路

2、存在负值环路时,前驱矩阵仍然有效,我们可以通过前驱矩阵来确定负值环路的长度 

25.2-5

问题描述:

问题分析:

首先,要理解这个修改的含义是什么?

将等号从上一种情况挪用到下一种情况,问是否正确,本质就是在问:

dij(k−1)​=dik(k−1)​+dkj(k−1)​时前驱矩阵应该要执行哪个操作

dij(k−1)​=dik(k−1)​+dkj(k−1)​意味着无论是否经过k点长度是相同的,根据三角形理论我们知道这个等号成立的唯一情况就是:顶点k在路径上的另外两点连线上

所以问题就转为:顶点k在路径上的另外两点连线上时,前驱矩阵生成要执行哪个操作 

问题求解:

显然,是正确的,两种操作都可行 

25.2-6

问题描述:

我们怎样才能使用 Floyd-Warshall 算法的输出来检测权重为负值的环路?

问题求解:

弗洛伊德算法的输出有两个:一个是点与点之间的最短路径长度矩阵;另一个是前驱子图矩阵。

假如存在i使得dist[i,i]<0,那么就代表存在权重为负值的环路

第二十六章

26.2-2

问题描述:

问题分析:

需要先明白横跨切割是什么意思,见下图:

切割:将图切割为两个部分,利用两个{}符号来表示切割后图的两个部分

问题求解:

图分为两个部分{s、v2、v4}、{v1、v3、t}:

计算得到

流:11+1-4+7+4=19

容量:16+4+7+4=31

注意:在容量计算时,不考虑反向边的流

26.2-4

问题描述:

在图 26-6 的例子中,对应图中所示最大流的最小切割是什么?在例子中出现的增广路径里,哪一条路径抵消了先前被传输的流?

问题分析:

一个问题:最大流的最小切割是什么?

这涉及到一个定理 最大流最小切割定理

直觉理解:一个流网络中最大流的值不能超过该网络最小切割的容量(推论26.5) 

推论26.5证明如下:

问题求解: 

利用FORD-FULKERSON算法可以知道:最大流为23。又通过最大流最小切割定理可以知道:

这个最大流的值必然等于图中的一个最小切割

因此最小切割为S={s,v1​,v2​,v4​} and 𝑇={𝑣3,𝑡}

同时(v2,v3)抵消了原本的流

26.3-4(较难)

问题描述:

问题分析:

本题需要证明当且仅当的关系,所以证明分为两个方向一个是必要性一个是充分性

需要证明:

1、如果A<=N(A),那么图G是完全匹配图

2、如果图G是完全匹配图,那么A<=N(A)

问题求解: 

总结

本文到这里就结束啦~~

本篇文章看起来字数少,但是有几道题目的难度还是比较大的,尤其是26.3-4的证明题(利用了构造法+反证法证明)

本篇文章的撰写花了本喵四个多小时

如果仍有不够,希望大家多多包涵~~

如果觉得对你有帮助,辛苦友友点个赞哦~

知识来源:《算法导论》课后习题、山东大学孔凡玉老师ppt。不要用于商业用途转发~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/24815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue2中如何使用函数式组件

vue2 中如何使用函数式组件 用 render 定义函数式组件如何处理 props如何在函数式组件中触发自定义事件&#xff1f;injection如何使用 computed 和 methods定义一个函数式组件的 MyButton函数式组件有何优势哪种场景适合使用函数式组件函数式组件的问题参考 函数式组件&#x…

mysql常用操作汇总

mysq查询结果&#xff0c;用逗号分割 SET SESSION group_concat_max_len max_allowed_packet; &#xff08;分割不限制长度&#xff09;SELECT GROUP_CONCAT(vehicle SEPARATOR ,) AS separated_vehicles FROM tms_scheduling_car_test where status 0 and error_message l…

大模型日报2024-06-08

大模型日报 2024-06-08 大模型资讯 AI研究&#xff1a;通过消除矩阵乘法实现高效的大语言模型 摘要: 该AI研究探讨了通过消除矩阵乘法来实现高效且可扩展的大语言模型&#xff08;LLMs&#xff09;。此方法旨在提升模型性能&#xff0c;提供更快速和高效的计算方案。 AWS大力投…

【VVC】xCompressCU()函数注解

//传入的tempLUT和bestLUT表示编码当前块之前所维护的HMVP列表信息 void EncCu::xCompressCU( CodingStructure*& tempCS, CodingStructure*& bestCS, Partitioner& partitioner, double maxCostAllowed ) {CHECK(maxCostAllowed < 0, "Wrong value of max…

FineReport使用小记(不断更新中…………)

FineReport使用小记 1. 单元格相关设置1.1. 单元格值样式 2. 报表块设置2.1. 给报表块加单位 1. 单元格相关设置 1.1. 单元格值样式 1. 百分比样式 选中单元格&#xff0c;单元格属性——>文本——>格式——>百分比 下面可以选择保留几位小数&#xff0c;图中为保留…

【MySQL】常见可执行程序

本文使用的版本是MySQL8&#xff0c;5.7可能会有所不同。 MySQL提供了一些重要的程序用来管理和操作数据库。这里会介绍一些常用的程序及其使用。对于MySQL程序的使用&#xff0c;可以查看官方帮助手册来学习。 MySQL :: MySQL 8.0 Reference Manual :: 6 MySQL Programs 程序…

7-6 猴子吃桃

7-6 猴子吃桃 分数 15 全屏浏览 切换布局 作者 蔡尚真 单位 绍兴文理学院元培学院 猴子第一天摘下若干桃子&#xff0c;当即吃了一半&#xff0c;还觉不过瘾&#xff0c;又多吃了一个&#xff1b;第二天早上又将剩下的桃子吃掉一半&#xff0c;又多吃了一个。以后每天天早上…

找了半天,还不如自己写一个图片转ico格式的程序

关于jpg、png等图片转ICO格式 最近突然急需一张ico格式的文件&#xff0c;就拿着处理好的png图片出网上找在线转换器&#xff0c;找了一个小时&#xff0c;绝了&#xff0c;不是需要注册充钱就是下载不下来&#xff0c;好不容易下载下来还是个文件错误。想着找个PS插件直接导出…

烧写uboot、linux镜像、根文件系统到开发板

烧写uboot、linux镜像、根文件系统到开发板 环境介绍 本博客使用x6818开发板。 公司&#xff1a;三星 ARM架构 Cortex-A53核 型号&#xff1a;S5P6818 特性&#xff1a;8核&#xff0c;最高主频2GHz 烧写uboot 使用网络烧写 网络烧写上位机是Ubuntu虚拟机。 先利用上…

基于STM32智能小车

一、前置准备 前置知识&#xff1a;需要学习stm32&#xff0c;建议去b站看江科大的视频&#xff0c;讲的很详细&#xff0c;学完串口那一块就可以制作了&#xff0c;软件用的是Keil5&#xff0c;开发语言C语言&#xff0c;手机连接蓝牙模块软件是蓝牙调试器。 需要准备的器件…

数学+思维,CF1056B - Divide Candies

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1056B - Codeforces 二、解题报告 1、思路分析 考虑i^2 j^2 | m 而m的余数有限&#xff0c;且m很小 我们枚举两重循环&#xff0c;都枚举m的余数&#xff0c;分别记为x&#xff0c;y 如果x ^ …

最大的数字(maxnumber)

最大的数字 题目描述 给定一个十进制整数 n n n&#xff0c;保证 n n n 的首位不为 0 0 0&#xff0c;你必须删除其中 d d d个数字&#xff0c;使得留下的数字最大。请输出留下的最大数。 输入格式 第一行&#xff1a;单个整数表示 d d d 第二行&#xff1a;单个整数表示…

BGP宣告+自动汇总问题

BGP 的宣告问题 在 BGP 协议中每台运行 BGP 的设备上&#xff0c;宣告本地直连路由&#xff1b; 在 BGP 协议中运行 BGP 协议的设备来宣告.通过 IGP 学习到的&#xff0c;未运行 BGP 协议设备产2、生的路由&#xff1b; 在 BGP 协议中宣告本地路由表中路由条目时,将携带本地到达…

Linux☞进程控制

在终端执行命令时&#xff0c;Linux会建立进程&#xff0c;程序执行完&#xff0c;进程会被终止&#xff1b;Linux是一个多任务的OS,允许多个进程并发运行&#xff1b; Linxu中启动进程的两种途径&#xff1a; ①手动启动(前台进程(命令gedit)...后台进程(命令‘&’)) ②…

数据库安全加固与API防护策略

在数字化时代&#xff0c;数据库作为企业核心资产的安全性至关重要。然而&#xff0c;随着网络攻击手段的不断演进&#xff0c;数据库和API接口成为了黑客的主要攻击目标。本文将探讨数据库被攻击、API接口被滥用的情况&#xff0c;并提供一系列实用的防护措施&#xff0c;旨在…

【玩转C语言】第三讲---> scanf 和 printf 函数详解(非常重要)!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 引言&#xff1a; 大家好&#xff0c;我是坊钰&#xff0c;为了让大家深入了解C语言&#xff0c;我开创了【玩转C语言系列】&#xff0c;将为大家介绍C语言相关知识…

虚拟存储器概述

目录 常规存储器管理方式的特征和局部性原理 缺点 局部性原理 局部性原理的应用 1. 提高内存利用率 2. 实现按需装入 3. 支持内存共享 4. 提高系统稳定性 虚拟存储器的定义与特征 虚拟存储器的特征 虚拟存储器的实现机制 虚拟存储器的工作过程 虚拟存储器的优点 虚…

C++ ─── STL 以及string

前言&#xff1a;什么是STL STL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且 是一个包罗数据结构与算法的软件框架 STL的六大组件 1. 为什么学习string类&#xff1f; 1.1 C语言中的字符…

Ambari集成Apache Kyuubi实践

目前还有很多公司基于HDP来构建自己的大数据平台&#xff0c;随着Apache Kyuubi的持续热度&#xff0c;如何基于原有的HDP产品来集成Apache Kyuubi&#xff0c;很多人都迫切的需求。集成Apache Kyuubi到HDP中&#xff0c;主要涉及Ambari的二次开发。本文详细叙述了集成Apache K…

力扣刷题分类合集

数组1.二分法&#xff1a;704.Binary Search&#xff08;求下标&#xff09; 704. Binary Search