题目链接:http://poj.org/problem?id=1330 最近公共祖先模板题 Tarjan离线算法 : 读取所有询问后保存并按照一定方式排列。该算法主要采取深度优先搜索的方式,结合并查集,在搜索同时处理查询,大致过程如下: 搜索到节点u 访问标记u 对于u的所有子节点递归搜索,每搜索并 ...
分类:
其他好文 时间:
2017-08-02 10:21:30
阅读次数:
119
我们先把所有最左端对应的最优右端入堆,eg: z 在[l,r](由题目给出的L,R决定)之间的最优解 y,然后出堆以后,再入堆z,y-1,z,y+1,那么我们只需要用st找最大前缀和就好了(ST是一种用来解决RMQ问题的方法他的应用也就限于此了) ...
分类:
其他好文 时间:
2017-08-02 10:16:13
阅读次数:
133
Frequent values UVA - 11235 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 #define CLR(m,a) memset(m,a,sizeof(m)) 5 6 const int maxn=100010; 7 ...
分类:
其他好文 时间:
2017-07-31 14:33:44
阅读次数:
180
DESCRIPTION There are nn buildings lined up, and the height of the ii-th house is hihi. An inteval [l,r][l,r](l≤r)(l≤r) is harmonious if and only if m ...
分类:
其他好文 时间:
2017-07-30 13:50:54
阅读次数:
162
题意:链接 方法:线段树 解析: 题意即题解。 多次询问区间最大值与最小值的差。显然直接上线段树或者rmq维护区间最值就可以。 代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #def ...
分类:
其他好文 时间:
2017-07-30 13:50:09
阅读次数:
148
“玲珑杯”ACM比赛 Round #19 Start Time:2017-07-29 14:00:00 End Time:2017-07-29 16:30:00 Refresh Time:2017-07-29 16:42:55 Private B -- Buildings Time Limit:2s ...
分类:
其他好文 时间:
2017-07-29 20:26:25
阅读次数:
159
题意:给出N,k,长度为N的数列,问有多少个区间满足区间最大值-区间最小值<=k 思路:RMQ+二分 ...
分类:
其他好文 时间:
2017-07-29 18:14:36
阅读次数:
123
题目链接:http://poj.org/problem?id=3264 题目大意: 一个农夫有N头牛,每头牛的高度不同,我们需要找出最高的牛和最低的牛的高度差。 解题思路:经典 RMQ ...
分类:
其他好文 时间:
2017-07-28 14:07:26
阅读次数:
101
题目链接~~> 做题感悟:这题開始看到时感觉不是树不优点理,一想能够用 Kruskal 处理成树 ,然后就好攻克了。 解题思路: 先用 Kruskal 处理出最小生成树。然后用树链剖分 + 线段树处理就能够了。 代码: #include<iostream> #include<sstream> #in ...
分类:
其他好文 时间:
2017-07-27 18:13:11
阅读次数:
109
void RMQ_max_init( int n ) { memset(dp, 0x00, sizeof(dp)); for(int i = 1; i <= n; i++) dp[i][0] = a[i]; for(int j = 1; (1<<j) <= n; j++) for(int i = 1... ...
分类:
其他好文 时间:
2017-07-26 13:35:44
阅读次数:
118