最长公共前缀,输入两个字符串,如果存在公共前缀,求出最长的前缀,如果没有输出no。如“distance”和“discuss”的最长公共前缀是“dis”。 ...
分类:
编程语言 时间:
2019-10-27 16:27:42
阅读次数:
93
题意 n<=30000,m<=30000 题解 暴力的话就是直接建边跑spfa最短路 然而直接建边看上去复杂度正确,实际最多会建$n^2$条边, 看上去复杂度正确如何不试一试, $dis[x][y]$表示位置$x$有一只跳跃长度为y的狗 炸空间十分严重30000*30000开不下 ,考虑分块,这样就 ...
传送门 "Luogu" 解题思路 发现一个性质: 对于所有的宝藏点 ${a_1,a_2...a_k}$ ,按照dfs序递增排列,答案就是: $dis(a_1, a_2) + dis(a_2, a_3) + \cdots + dis(a_{k 1}, a_k) + dis(a_k, a_1)$ 考虑加 ...
分类:
其他好文 时间:
2019-10-27 10:44:53
阅读次数:
49
传送门 "Luogu" 解题思路 首先对于所有不属于任何一条路径上的边,它的权值是任意的。 对于所有在路径上的边 $(u,v)$ 满足 $1\le dis_v dis_u\le2$ 差分约束即可。 细节注意事项 + 用dfs判负环时注意一下时间效率 参考代码 cpp include include ...
分类:
其他好文 时间:
2019-10-26 23:18:08
阅读次数:
108
传送门 "Luogu" 解题思路 对于所有可以用 $2^k$ 形式表示的 $dis(i,j)$,将$i,j$之间的 $dis$ 置为 $1$,可以用倍增 $\text{Floyd}$ 实现。 然后直接 $\text{Floyd}$ 最短路即可。 细节注意事项 + 记得开$\text{long lon ...
分类:
其他好文 时间:
2019-10-26 22:55:34
阅读次数:
85
传送门: 这是一道bzoj权限题 "Luogu团队题链接" 解题思路 首先对于每一个点 $x$ 预处理出 $nr[x]$ 和 $dis[x]$,分别表示离 $x$ 最近的加油站以及该段距离。 这个过程可以用多源 $\text{Dijkstra}$ 处理。 然后对于每一条原图中的边 $(u, v, w ...
分类:
其他好文 时间:
2019-10-26 22:46:32
阅读次数:
111
这是求带负边权但是不能有负环的最短路算法,是中国人发明的一种算法吧也是。 首先我们还是用前向星存图,dis[]存当前的最短路径,然后用队列存储待优化的点。首先将起点入队,其次去遍历他所连接的点,如果可以松弛那么只要当前不在队里就将其入队。每一次去用他的队首去去遍历就可以,当队列为空的时候结束。 代码 ...
分类:
其他好文 时间:
2019-10-24 23:20:08
阅读次数:
64
这是一个用来求没有负边权的最短路径算法,复杂度是n^3,经过优先队列优化则是n^2. 算法思想:首先用前向星存储图,用一个node(需要重载运算符)类的priority_queue来存储被松弛的点(vis[i]==0)的的信息,dis[]数组存放当前到达这个点的最短路。其次进行扫描,看堆顶,也就是当 ...
分类:
其他好文 时间:
2019-10-24 23:13:07
阅读次数:
89
#include #include #include using namespace std; const int maxn = 100; int map[maxn][maxn]; int dis[maxn]; int path[maxn]; int vis[maxn]; int n; void D... ...
分类:
编程语言 时间:
2019-10-23 13:45:47
阅读次数:
84
题目链接 大意:不解释 思路:由于n极小,k也小,考虑状压后迭代乱搞.设状态dis[i][j]表示终点为i状态为j的最小路径长,将每个点的初始态扔进队列里迭代更新即可. 代码: 光坂小镇是一个由 nn 个点(编号为 11 ~ nn),mm 条有向边构成的图,每个节点上都有一个光玉,光玉共有 kk 种 ...
分类:
其他好文 时间:
2019-10-20 19:54:20
阅读次数:
81