题目链接:
huangjing
思路:新学会的一种算法,RMQ(Rangle Minimum Query)从名字来看,觉得就是查询最小值的,哈哈,
大白上有仔细的讲解。dp[i][j]=min(dp[i][j-1],dp[i+(1
预处理的复杂度为O(N*logN),查询就是O(1)的复杂度。
方法二:线段树解法 复杂度为O(Q*logN).
题目:
题目1 : R...
分类:
编程语言 时间:
2014-11-11 22:52:52
阅读次数:
187
题目来源:树中的最长路解题思路:枚举每一个点作为转折点t,求出以t为根节点的子树中的‘最长路’以及与‘最长路’不重合的‘次长路’,用这两条路的长度之和去更新答案,最终的答案就是这棵树的最长路长度。只要以类似后序遍历的方式依次访问每个结点,从下往上依次计算每个结点的first值和second值,我就能...
分类:
其他好文 时间:
2014-11-08 22:05:53
阅读次数:
335
题目来源:基因工程解题思路:假设基因序列长度为N,则需要计算基因序列前K个和后K个相同所需要的最少改变次数sum。假设基因序列为 ATACGTCT (即M=8),K=6;interval=M-K=2; 0 1 2 3 4 5 6 7sq1 A T A C G T C Tsq2 A C GT...
分类:
其他好文 时间:
2014-11-08 00:44:48
阅读次数:
365
题目来源:补提交卡解题思路:假设未提交程序的天数为:a1,a2,....,an,补交的张数为M。依次从a1,a2,....,an中去掉连续的 K 天(0 sum ? max : sum;17 }18 return max;19 }20 21 //从下标...
分类:
其他好文 时间:
2014-11-08 00:42:33
阅读次数:
310
题目来源:后序遍历解题思路:开始时我只知道先通过先序、中序求出二叉树,然后再后序遍历二叉树,这当然也是一种解题思路,但是会做一些无用功,比如:计算二叉树。其实,可以直接通过先序序列和中序序列直接求出后序序列的。思路如下:1、取先序序列的第一个节点为根节点;2、在中序序列中找到根节点的下标,将中序序列...
分类:
其他好文 时间:
2014-11-06 10:29:52
阅读次数:
166
题目来源:国庆出游解题思路(下面是大神的写的):把题目中的序列称作S,树称作T。那么对于S中的任意节点x,x的子孙节点如果在S出现的话,那么这个子孙节点的位置是有一定要求的:x的所有子孙节点在S中的位置都恰好紧跟在x的后面,没有被其他节点隔开。设x的子孙节点是abcd,那么--xabcd--, --...
分类:
其他好文 时间:
2014-11-05 14:25:47
阅读次数:
320
题目3 : 光棍节时间限制:30000ms单点时限:1000ms内存限制:256MB描述尽管付出了种种努力,jzp还是得过光棍节。jzp非常不爽,但也无能为力,只能够哀叹起来他的命运。他想到了一位长者的人生经验:“人的一生,不光要靠自我奋斗,也要考虑历史的进程”。他终于明白自己只是时运不济,所以又继...
分类:
其他好文 时间:
2014-11-02 23:51:29
阅读次数:
495
在线的LCA算法,dfs遍历整棵树,对于每个点出现的时候都插入到数组中,然后查询两个点的lca就是两个点在数组中最后出现位置间的dep值最小的点,就转化为链上的RMQ问题了。#include #include #include #include #include #include #include ...
分类:
其他好文 时间:
2014-10-31 22:04:52
阅读次数:
214
裸的LCA离线算法,存下来当模板用吧。思想就是,将所有的查询都先存起来,然后对树做一次dfs遍历,对每一次经过的节点进行染色,标记为未访问,正在访问,和已经访问完毕。可以很明显的发现如果当前点是一个查询的端点,那么如果另外一个端点正在访问,则当前点是另外一个端点的子节点,两者的LCA为另外一个端点,...
分类:
其他好文 时间:
2014-10-31 20:34:28
阅读次数:
217