POJ 3264 Balanced Lineup (RMQ)
2016-02-25 17:22
357 查看
题目链接:http://poj.org/problem?id=3264
题目大意:
给出n个数, m个询问
求每次询问范围内最大值与最小值得差
方法:
RMQ查询, 其实有点像DP
题目大意:
给出n个数, m个询问
求每次询问范围内最大值与最小值得差
方法:
RMQ查询, 其实有点像DP
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; const int maxn = 50010; int A[maxn]; int Max[maxn][17], Min[maxn][17]; void RMQ(int n) { int k = (int )(log(n) / log(2)); for(int j=1; j<=k; j++) for(int i=1; i<=n; i++) if(i + (1<<j) - 1 <= n){ Max[i][j] = max(Max[i][j-1], Max[i+(1<<(j-1))][j-1]); Min[i][j] = min(Min[i][j-1], Min[i+(1<<(j-1))][j-1]); } } int main() { int n, q; while(~scanf("%d%d",&n, &q)) { for(int i=1; i<=n ;i++){ scanf("%d", &A[i]); Max[i][0] = Min[i][0] = A[i]; } RMQ(n); while(q--){ int a, b; scanf("%d%d",&a, &b); int k = (int )(log(b-a+1)/log(2)); printf("%d\n", max(Max[a][k], Max[b-(1<<k)+1][k]) - min(Min[a][k], Min[b-(1<<k)+1][k])); } } return 0; }
相关文章推荐
- System.getProperty("file.encoding")
- 设计模式—策略模式
- Android 通过JNI实现守护进程,使Service服务不被杀死
- <javascript>每日小结
- WEB开发者应必须具备的6大技能
- shell之磁盘容量检查
- shell之磁盘容量检查
- 编译安装http启动问题
- UILabel的一些用法
- 深入理解Hadoop集群和网络
- el表达式里面fn的用法
- Python代码优化及技巧笔记(一)
- Python代码优化及技巧笔记(一)
- 如何在lk中修改gpio的值
- 大型网站架构系列:负载均衡详解(2)
- Web App自适应布局
- uva357
- 高通平台手机开发之TP
- Java中字符串倒序方法
- calculator