logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

网络流----最小费用最大流(EK+SPFA)

该网络中总花费最小的最大流称为最小费用最大流,总花费最大的最大流称为最大费用最大流,二者合称费用流模型,即在最大流的前提下考虑费用的最值。

#图论
(L3-023)计算图(数学+dfs)(第三个测试点是e的精度问题)

题目链接:PTA | 程序设计类实验辅助教学平台输入样例:70 2.00 5.05 03 0 16 11 2 32 5 4输出样例:11.6525.500 1.716分析:这道题就是一个基本的搜索:先来说一下怎么计算图的函数值:假如有x号节点u和y号节点v要进行z号运算,我们就从z号节点向x号节点和y号节点各连一条边,由于图一定是个拓扑图,假如我们递归到z号节点,就必须要把x号节点和y号节点的值全

#数学
bellman_ford算法求最短路问题

先简单介绍一下算法的思想:与dijkstra算法不同的是,bellman_ford算法是利用边来更新两点之间的距离每次遍历所有边,看是否能够松弛,即更新源点到其他点的最小值。最多遍历n-1次,即可得到单源最短路。(遍历k次求出的是从源点经过不超过k条边走到任一点的最短距离)算法实现起来比较简单,下面直接上代码://解释:dist[i]代表i号点距离源点的最短距离//pre[i]用于存储i号点的前驱

树的直径两种求法

首先先介绍一下什么是树的直径,树的直径就是树中所有最短路经距离的最大值。求树的直径通常有两种方法,一种是通过两次搜索(bfs和dfs均可),另一种就是通过树形dp来求了。先来介绍一下用两次深搜来求树的直径:先从图上任意一点,搜索整棵树,找到距离该点最远的点,再用距离该点最远的点搜索一次,即可得到树的直径。证明我就不写了,给出一位大佬的博客地址,里面有很详细的证明https://zhuanlan.z

#动态规划
最近公共祖先(LCA)(树上倍增)

什么是最近公共祖先呢?其实这是在树上定义的,比如说x节点,那么x节点以及x节点的父节点以及x节点的父节点的父节点的……父节点,这都算是x的祖先,而公共祖先显然是对于两个节点而言的,就是一个节点同时是这两个节点的祖先,那么这个节点就是两个节点的公共祖先,最近公共祖先当然是离他们最近的公共祖先了。画个图来说明一下:...

#图论
(第十四届蓝桥真题)01串的熵

分析:这道题只要看明白了题意直接暴力即可,先枚举0的个数cnt0,然后1的个数就是23333333-cnt0,那么我们直接计算这个对应的信息熵即可,注意精度取到1e-4即可。

文章图片
#算法
(第十四届蓝桥杯真题)岛屿个数

不妨当前岛屿设颜色为c,然后从最左上角(如果有效区域从(1,1)开始,那么我们就可以从(0,0)开始搜索)开始搜索,如果搜索到颜色为c的岛屿,那么我们就不加入队列,这样我们可以。分析:这道题如果要是环内岛屿也被计算的话就是一道BFS经典题,现在的问题就在于如何去掉环内岛屿的影响。,这样就可以保证环内的岛屿不会被重复计算了。

文章图片
#蓝桥杯#职场和发展
一道平平无奇的字符串题目(最长上升子序列)

题目链接: OnlineJudge这就是一道基本的最长上升子序列问题,但是这个字符串我们无法直接转化为对应的数值,我们只能全部读入后对其进行排序,排序完成后再对其进行映射,这样我们就可以对他进行求最长上升子序列的长度了,注意本道题求最长上升子序列时只能利用nlogn的方法。还不知道nlogn求最长上升子序列的小伙伴可以看下我之前的博客,在这给出博客地址:最长子序列问题_AC__dream的博客-C

#算法#动态规划
到底了