多有趣的一道题啊... 考场上的思路: 首先我们可以通过hash判断出每个$B$类串是几个$A$类串的前缀,从这个$B$类串向对应的$A$类串连边 然后我们直接按支配关系从$A$类串向$B$类串连边,相当于以$B$类串为中转构造了一张$A$类串的图,在这张图上跑一次最长路即可 这样做是40分(所以4 ...
分类:
其他好文 时间:
2019-07-04 09:17:09
阅读次数:
97
前置技能: "tarjan求强连通分量" 缩点 。 顾名思义,就是在图论算法中将一些点缩成一个点的一种算法。 应用 貌似明白了,但是这有什么用呢? 我们经常求最短路,但是如果我们要求最长路呢? 标准问法: 给你一张有向图,每个点都有一个点权(不是边权了哦),且每一个点都可以经过任意多次,但是点权只能 ...
分类:
编程语言 时间:
2019-07-02 21:22:10
阅读次数:
589
题目传送门 对于一个刚接触差分约束系统的OIer来说,这算是一道细节比较多,也比较难的题。首先就是这道题有5种不同的约束条件,对于条件1,3,5直接按照差分条件建边即可,条件2,4要先移项,再建边。之后再求单源最长路,好不容易做出来后你就会发现数据卡SPFA!!!!这里可以加两个小小的优化:1)当a ...
分类:
其他好文 时间:
2019-06-24 22:43:50
阅读次数:
127
题意及思路:http://ydc.blog.uoj.ac/blog/12 在求出树的直径的中心后,以它为根,对于除根以外的所有子树,求出子树中的最大深度,以及多个点的最大深度的lca,因为每个点的最长路径一定经过根,所以找到最大深度的子树,然后在这个点和最大深度的lca上树上差分一下就好了。注意,此 ...
分类:
其他好文 时间:
2019-06-10 21:08:02
阅读次数:
200
题目传送门 解析: 题目释义:一张图有c个节点,每个节点有一个相等的权值d,有p条无需花费的路径和f条需要花费的路径,求图中最长路。 算法设计: 由于可能出现正环,所以需要SPFA算法,在加边的时候把p条无需花费的路径边权设为d,而f条需要花费的路径设为d-z(其中z是这条路需要的花费)。由于终点不 ...
分类:
其他好文 时间:
2019-06-07 22:59:27
阅读次数:
136
树的直径的模板题 我们存图以后,对这张图(树)进行一次dfs,定义sum1表示从当前节点向他的儿子走的最长路径是多少,sum2表示次长路径是多少。我们每次先用当前路径的长度+当前路径前往的节点的sum1更新当前节点的sum2,如果更新后sum2大于sum1,那么我们交换他们的数值,不难发现这样是正确 ...
分类:
其他好文 时间:
2019-06-01 21:28:03
阅读次数:
110
P1137 旅行计划 最长路 DAG 拓扑排序的过程中直接 DP 算是从头开始图论的学习....emmmmmmm 通常情况下,在实现的时候会维护一个队列以及每个结点的入度。在删 除边的时候顺便把相应结点的入度减去,当这个结点入度为 0 的时候直接 将其加入队列。 大概对图论形成了惯性思维 看到就怕Q ...
分类:
编程语言 时间:
2019-05-25 19:42:37
阅读次数:
123
本题思路:最短路变形,改变松弛方式即可,dist存的是源结点到当前结点的最长路的最小权值。 参考代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #define INF 0x3f3f3f3f 5 using n ...
分类:
其他好文 时间:
2019-04-11 10:36:44
阅读次数:
131
链接:https://vjudge.net/problem/UVA-10285 题意: 给你一个二维矩阵,任意选一个起始点,每次可走上下左右四个方向。 但是只能走比他小的格子,求最长的一条路的长度。 思路: dp[i][j]表示从i,j位置开始的最长路。 得到转移方程dp[i][j] = max(d ...
分类:
其他好文 时间:
2019-04-07 12:45:47
阅读次数:
110
"「十二省联考 2019」字符串问题" 解题思路 傻逼题.. 考虑问题转化为一个A串向其支配的所有B串的后缀A串连边,如果有环答案 $ 1$ 否则是这个 $\text{DAG}$ 上最长路径,直接建图是 $n^2$ 的,考虑优化建图即可。 由于 $A,B$ 都是原串的一个子串,那么对原串的反串建 S ...
分类:
其他好文 时间:
2019-04-06 17:18:07
阅读次数:
211