【POJ 3264】Balanced Lineup 【RMQ裸题】
来源:互联网 发布:mac nice to meet 停产 编辑:程序博客网 时间:2024/05/22 16:42
题很水啊,只是拿来练习SparseTable,一种tarjan提出的数据结构。
好吧,其实就是倍增思想。因为LCA->RMQ问题中我ST表不会写所以特来练习,水一发。
如果不会ST表的可以看http://blog.csdn.net/niushuai666/article/details/6624672
#include<cstdio>#include<cmath>#include<iostream>#include<algorithm>using namespace std;const int N = 50010;int n,q,t,f[N][20],g[N][20];void initSparseTable(int len){ int block=log(len*1.0)/log(2.0); for(int j=1;j<=block;j++){//i + 2^(j-1) + 2^(j-1) - 1 <= n ==> i <= n + 1 - 2^j for(int i=1;i<=n+1-(1<<j);i++){ f[i][j]=max(f[i][j-1],f[i+(1<<(j-1))][j-1]); g[i][j]=min(g[i][j-1],g[i+(1<<(j-1))][j-1]); } }}int RMQ(int a,int b){ int block=log((b-a+1)*1.0)/log(2.0); return max(f[a][block],f[b-(1<<block)+1][block])-min(g[a][block],g[b-(1<<block)+1][block]);}int main(){ scanf("%d%d",&n,&q);for(int i=1;i<=n;i++)scanf("%d",&t),f[i][0]=g[i][0]=t; initSparseTable(n);int a,b; while(q--){scanf("%d%d",&a,&b);if(a>b)swap(a,b);printf("%d\n",RMQ(a,b));} return 0;}
1 0
- poj 3264 Balanced Lineup 【RMQ 裸题】
- POJ 3264 Balanced Lineup 【RMQ裸题 】
- 【POJ 3264】Balanced Lineup 【RMQ裸题】
- POJ 3264 Balanced Lineup(RMQ)
- POJ-3264 Balanced Lineup【RMQ】
- poj 3264 Balanced Lineup RMQ
- POJ 3264 Balanced Lineup [RMQ]
- 【RMQ】poj 3264 Balanced Lineup
- POJ 3264 Balanced Lineup (RMQ)
- POJ 3264 Balanced Lineup,RMQ
- POJ 3264 Balanced Lineup(RMQ)
- poj 3264 Balanced Lineup【RMQ】
- POJ-3264 Balanced Lineup【RMQ】
- POJ 3264 Balanced Lineup (RMQ)
- POJ 3264 Balanced Lineup (RMQ)
- 【POJ 3264】 Balanced Lineup (RMQ)
- POJ---3264-Balanced Lineup (RMQ)
- POJ 3264 Balanced Lineup (RMQ)
- Servlet3.0中使用注解@WebServlet配置Servlet
- 搭建Oracle 10g RAC过程记录
- DOM探索之控制页面元素
- CocoaPods使用
- 素数并不孤独
- 【POJ 3264】Balanced Lineup 【RMQ裸题】
- Unable to find vcvarsall.bat Python扩展编译失败解决办法
- Stackla前端团队Leader蒋定宇:国外前端开发者的别样人生
- react native 安卓TextInput点击键盘上的search按钮触发两次的解决办法
- 随机森林的简单实现
- 加入我们
- [LeetCode]Merge Intervals
- codevs2072 分配房间
- 浏览器