题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题意 给出一个 $n$ 点 $m$ 边的带权无向图,找出结点 $1$ 到结点 $n$ 的路径最小权。($n \le 100, m \le 10000$) 题解 $n$ 的范围较小,可以用 $O_{ ...
分类:
其他好文 时间:
2020-07-27 09:38:16
阅读次数:
51
###思路 很好,这又是一道模板。 求割点的tarjan和求强连通分量的tarjan原理相同,但是实际写法并不完全相同。要注意的是,对于一个点u,它在不同情况下要满足以下两个条件才能称之为割点: (1)low[v]>=dfn[u](v是u在搜索树上的儿子,且u不在环中) (2)u在搜索树上有两个以上 ...
分类:
其他好文 时间:
2020-07-26 23:01:15
阅读次数:
66
【Tarjan算法的作用】: 求强连通分量; 缩点(将一个环缩成一个点); 割点(这里不谈)…… 【Tarjan算法的过程】: 初始化数组:dfn[u](时间戳:该节点是第几个被首次访问到的),low[u](low[u]表示u或u的子树所能回溯到的栈中的最早的节点的dfn值) 堆栈:将u压入栈顶 更 ...
分类:
其他好文 时间:
2020-07-26 01:20:48
阅读次数:
60
战略游戏 题目要求求删除后能使一些点不连通的点的个数。 删点可以想到点双树。 建出原图的点双树。 一条路径x,y上的点如果被删除,则x,y不能互相到达。 如果把圆点的权值设为1,方点的设为0,则答案就是虚树的点权和。 实际上,不用把虚树建出来。可以使用一个经典结论。 如果把一个点的权值放在父亲边上, ...
分类:
其他好文 时间:
2020-07-24 21:52:20
阅读次数:
74
知识点简单总结——带花树(一般图最大匹配) 前置知识 二分图最大匹配(匈牙利算法) 一般图最大匹配 首先思考一下一般图和二分图的区别在哪里。 很明显二分图没有奇环。 那么只要能处理好奇环的结果就好。 首先像匈牙利算法一样每次选择一个点开始匹配并进行一次新的黑白染色,起点为黑色。 进行bfs,用队列处 ...
分类:
其他好文 时间:
2020-07-23 15:45:31
阅读次数:
74
二维树状数组及(不会用到的)三维树状数组 前置芝士 一维树状数组(lowbit) 二维树状数组 二维树状数组涉及到两种基本操作,修改矩阵中的一个点,查询子矩阵的和 首先是修改点的操作: void update(int x,int y,int z){ //坐标为(x,y)的点增加z for(int i ...
分类:
编程语言 时间:
2020-07-19 17:57:19
阅读次数:
58
题:https://ac.nowcoder.com/acm/contest/5668/G 题意:给定n点m边图,q个询问,每个询问为x颜色,若此时图上有x颜色的部分,这该部分临边的部分会被染成x颜色(有可能是一个点,有可能是同种颜色的子图) 分析:因为一种颜色只能由一次覆盖临边的机会,所以每次操作只 ...
分类:
其他好文 时间:
2020-07-18 22:27:50
阅读次数:
100
题意:有一$n$个点,$m$条边的双向图,每条边都有花费和流量,求从$1$~$n$的路径中,求$max\frac{min(f)}{\sum c}$. 题解:对于c,一定是单源最短路,我们可以用dijkstra,但是这个最小流量不是很好搞,但是题目所给的数据范围较小,所以我们可以直接枚举最小流量,然后 ...
分类:
其他好文 时间:
2020-07-17 19:42:27
阅读次数:
70
下面我就来详细讲解一下关于树剖的一些重点,其实树剖的主要就是轻重链的判断,这一点我默认大家都懂,所以我就直接从两个dfs那里开始说。 dfs1 第一个dfs主要是处理一下基本的一些信息,就是我们更新每一个点的爸爸,处理一下他们当前的深度,然后更新他们的子树大小,然后我们再从他们的儿子中找到重儿子。具 ...
分类:
其他好文 时间:
2020-07-17 16:19:08
阅读次数:
54
带花树算法大概就是解决一般图的最大匹配 回顾匈牙利算法解决二分图匹配 我们每次增广左侧的a,其实是找到与它有边相连的右侧的一个点b 看b是否在匹配中,如果不在那么增广成功 如果在那么就增广b的匹配点c看是否成功 但我们发现这是因为我们把点集分成两个内部无交的点集才可以这么做 但是对于一般图是不满足这 ...
分类:
编程语言 时间:
2020-07-16 00:19:40
阅读次数:
74