参考:点击打开链接 点击打开链接 点击打开链接(一些总结) 点击打开链接(不错的模板)
题目:点击打开链接
花了4天时间做完了这个专题,LCA的问题用处还是很大,同时能体会RMQ的ST算法中dp的味道.基本方法就是ST,LCA转RMQ,LCA的Tarjan,LCA倍增(这个可存储边权)
这个专题后面四道题都非常好,推荐大家做做.
细节:
1. ST方法2^i 包含自己,因此其真...
分类:
其他好文 时间:
2015-02-13 10:11:09
阅读次数:
167
参考:点击打开链接 点击打开链接 点击打开链接(一些总结) 点击打开链接(不错的模板)
题目:点击打开链接
花了4天时间做完了这个专题,LCA的问题用处还是很大,同时能体会RMQ的ST算法中dp的味道.基本方法就是ST,LCA转RMQ,LCA的Tarjan,LCA倍增(这个可存储边权)
这个专题后面四道题都非常好,推荐大家做做.
细节:
1. ST方法2^i 包含自己,因此其真...
分类:
其他好文 时间:
2015-02-12 16:23:39
阅读次数:
210
题意: 给出一个数组a[n](1<=a[i]<=n),可能会有重复,然后m组询问
每次询问两个数:l,r
在区间[l,r]内是否构成一个1,2,..,r-l 1的排列;
分析: 要想构成1,2….r-l 1的排列,首先要满足区间内的和sum=(1 len)*len/2
然后区间内的每个数都不一样即可,然后再开一个数组记录每个数前一次出现的位置pre,如果[l,r]内pre的最大值都小于l,...
分类:
其他好文 时间:
2015-02-10 23:17:00
阅读次数:
241
题意:已经懒得吐槽了。。有N个山峰,(N
它高的山峰都会经过一个最低值(山谷),d代表是h减去这些最低值中的最大值的差(如果不存在比它高的山峰那么d就是它本身的
高度),问有多少山峰的d>=150000米。
思路:利用单调栈维护每个峰左边第一个比它高的峰的位置l,右边第一个比它高的峰的位置r,对于r,我们从前向后维护一个单调减
序列,如果当前考虑的点i比栈顶的元素高度高,那么弹出栈顶元素,...
分类:
其他好文 时间:
2015-02-07 09:12:30
阅读次数:
137
For the daily milking, Farmer John's N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to organize a game of Ultimate Frisbee with some of the cows. To keep things simple, he will take a contiguous range of cows from the...
分类:
其他好文 时间:
2015-02-02 23:19:29
阅读次数:
254
先复习一下今天刚学的RMQ算法知识;
RMQ算法(Range Minimum Query)
:1.算法思想
求静态范围最值问题,适合于静态连续区间查询。
A[ i ] [ j ] 的值代表的是原数组中以 i 开始的连续 (1
2.代码
//2.1 预处理代码
for(int j = 1 ; j != 20 ; ++j ) //...
分类:
编程语言 时间:
2015-01-29 22:35:37
阅读次数:
313
链接:click here
题意:
南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。
小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。
南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的时候,需要考虑到新增的杀敌数。
思路:RMQ 入门
代码:
#include //RMQ
#incl...
分类:
其他好文 时间:
2015-01-29 22:34:02
阅读次数:
209
如题。#include#include#includeusing namespace std;#define N 200001#define BN 451int n,m,a[N],b[N],sumv[BN],l[N],num[N],num2[N],Lim,siz[BN],anss[N];struct...
分类:
编程语言 时间:
2015-01-27 18:01:05
阅读次数:
229
Balanced LineupTime Limit: 5000MSMemory Limit: 65536KTotal Submissions: 36513Accepted: 17103Case Time Limit: 2000MSDescriptionFor the daily milking, F...
分类:
其他好文 时间:
2015-01-25 16:35:41
阅读次数:
183
题目大意:给你一个字符串,给你N次查询,每次给你一个区间让你求出这个区间里面有多少子串。
解题思路:我们肯定要枚举位置,然后找公共子串然后再去掉重复的,但是他的地址对应的rank不是连续的,如果暴力找的话会n*n会超时。
从这个博客学习到一种方法:首先对整个字符串求一次sa[]以及height[],之后对于任意区间[L, R],遍历一遍sa[],只要起点在[L, R]内的后缀就需要进行统计,类...
分类:
编程语言 时间:
2015-01-23 20:12:09
阅读次数:
239