hiho刷题日记——第十六天RMQ-ST算法
来源:互联网 发布:安卓版白家乐分析软件 编辑:程序博客网 时间:2024/05/25 21:34
这两天有事停了两天。这道题也是调了不少时间。好累呀。真想就直接贴代码。
ST
定义ST[Len][L]表示左边界为L,长度为2^Len的区间中的最小值。则有
ST[Len][L]=min(ST[Len-1][L],ST[Len-1][L+2^(Len-1)];
然后就可以循环求出所有的ST。
答案
取小于这个区间长度的最大的2的非负整数次幂T,则答案为min(ST[Len][L],ST[Len][R+1-(1<
代码
#include<cstdio> #include<algorithm>using namespace std;const int MAX_SIZE=1000000+1;int N; int ans[21][MAX_SIZE];int Log2[MAX_SIZE];int main(){ scanf("%d",&N); int t=1,v=-1; for(register int i=1;i<=N;i++) { scanf("%d",&ans[0][i]); if(i>=t) {t<<=1;v++;} Log2[i]=v; } t=1; for(register int len=1;len<=Log2[N-1];len++) { for(int l=1;l+t<=N;l++) { ans[len][l]=min(ans[len-1][l],ans[len-1][l+t]); } t<<=1; } scanf("%d",&N); int l,r,len; while(N--) { scanf("%d%d",&l,&r); len=Log2[r+1-l]; printf("%d\n",min(ans[len][l],ans[len][r+1-(1<<len)])); } return 0;}
0 0
- hiho刷题日记——第十六天RMQ-ST算法
- hiho一下 第十六周 RMQ-ST算法
- HIHO #1068 : RMQ-ST算法
- RMQ——ST算法
- RMQ——ST算法
- hiho刷题日记——第十八天RMQ问题再临
- hiho刷题日记——第十九天RMQ问题再临-线段树
- HiHo #1068 : RMQ-ST算法 【ST求区间最值】
- hiho刷题日记——第三天KMP算法
- hiho刷题日记——第二十六天最小生成树一·Prim算法
- poj3264 rmq问题——st算法
- RMQ问题——ST算法
- RMQ问题——ST算法
- hiho刷题日记——第十二天刷油漆
- hiho刷题日记——第二天Trie树
- hiho刷题日记——第四天Trie图
- hiho刷题日记——第六天01背包
- hiho刷题日记——第二十四天最短路径·二:Floyd算法
- 编写JNI的一点心得
- Jquery 漂浮广告的插件
- 猴子分桃
- Java Socket编程
- GO语言零基础入门资料整理
- hiho刷题日记——第十六天RMQ-ST算法
- 正则表达式基础
- SDCC 2015中国软件开发者大会盛大开幕
- 文件系统缓存dirty_ratio与dirty_background_ratio两个参数区别
- Android bitmap图片处理
- 开始学习Andrew Ng的机器学习课程了,这里是学习的记录。
- 对九种排序算法的实现
- EF5批量操作数据库(批量创建、删除、附加、分离、脱机、联机)
- Java多线程:向线程传递数据的三种方法