点击打开链接
题意:问两个城市是否相连,不相连输出Not connected,否则输出两个城市间的最短距离
思路:用并查集判断两个城市的连通性,如果联通则做法和LCA一样,但是注意的一点是地图不连通的话,我们要将所有点都建起来,就要加一个模拟的点,将所有图串起来,很好处理的,看一下就会了#include
#include
#include
#include
#include
#inc...
分类:
其他好文 时间:
2016-05-03 18:40:47
阅读次数:
179
点击打开链接
题意:就是问两个节点间的距离
思路:又切了一道模版水题,不解释了,看不懂变量含义的可以看我写的这篇,解释的比较详细ZOJ 3195#include
#include
#include
#include
#include
#include
using namespace std;
typedef long long ll;
const int inf=0x3f3f3f3...
分类:
其他好文 时间:
2016-05-03 18:39:56
阅读次数:
118
第一种做法是贪心做法,只要前面的数比后面的大就把他删掉,这种做法是正确的,也比较好理解,这里就不说了,我比较想说一下ST算法,RMQ的应用 主要是返回数组的下标,RMQ要改成<=(这里是个坑点,取连续数是可以的),他的转移方程为x = dp[i-1][j],y = dp[i-1][j+1<<(i-1 ...
分类:
其他好文 时间:
2016-04-30 23:41:32
阅读次数:
205
相比以前的RMQ不同的是,这是一个二维的ST算法 ...
分类:
其他好文 时间:
2016-04-30 23:32:49
阅读次数:
242
题目链接 题意:求给定的字符串的最长回文子串 分析:做法是构造一个新的字符串是原字符串+反转后的原字符串(这样方便求两边回文的后缀的最长前缀),即newS = S + '$' + revS,枚举回文串中心位置,RMQ询问LCP = min (height[rank[l]+1] to height[r ...
分类:
编程语言 时间:
2016-04-30 16:48:02
阅读次数:
185
树状数组是能够完成下述操作的数据结构
给一个初始值全为0的数列a1,a2,…an。
*给定i,计算a1+a2+…+ai
*给定i和x,执行ai += x
1.基于线段树的实现
如果使用线段树,只需要对RMQ的样例做少许修改就可以实现这两个功能。线段树的每个节点上维护的是对应的区间的和。
接下来,我们来看如何计算从s到t的和。在基于线段树的实现中,这个和是可以直接求得的。
...
分类:
编程语言 时间:
2016-04-29 18:38:37
阅读次数:
178
题目大意:在一个长度为n的不降序列中,有m次询问,每次询问(i,j)表示在区间(i,j)中找出出现次数最多的元素的出现次数。 题目分析:因为序列有序,可以将序列分段,并且记录每段的元素个数、每一个元素所属的段num(i)、每一个元素所属段的左端点l(i)及右端点r(i)。那么对于每次询问: ans( ...
分类:
其他好文 时间:
2016-04-27 00:10:04
阅读次数:
171
树状数组是能够完成下述操作的数据结构
给一个初始值全为0的数列a1,a2,…an。
*给定i,计算a1+a2+…+ai
*给定i和x,执行ai += x
1.基于线段树的实现
如果使用线段树,只需要对RMQ的样例做少许修改就可以实现这两个功能。线段树的每个节点上维护的是对应的区间的和。
接下来,我们来看如何计算从s到t的和。在基于线段树的实现中,这个和是可以直接求得的。
...
分类:
编程语言 时间:
2016-04-26 20:51:56
阅读次数:
175
概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。这两个问题是在实际应用中经常遇到的问题,下面介绍一下解决这两种问题的比较高效的算 ...
分类:
编程语言 时间:
2016-04-26 14:05:38
阅读次数:
223
转自:https://github.com/alibaba/RocketMQ/wiki/rmq_vs_kafka 淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linki ...
分类:
其他好文 时间:
2016-04-19 21:35:49
阅读次数:
310