$n\log_3n$预处理的 Sparse Table ST表
来源:互联网 发布:java判断字符串为空格 编辑:程序博客网 时间:2024/06/16 16:57
稍微把它改一点,就可以变成
当然常数可能大一点,这个我没有详细计算。
int pow3(int x) { if(x == 0) return 1; if(x == 1) return 3; int tmp = pow3(x/2); return tmp*tmp*(x%2==1?3:1);}void RMQ_Init() { for(int i = 0; i < n; i++) spt[i][0] = a[i]; for(int j = 1;; j++) { int tmp = pow3(j); if(tmp > n) break; for(int i = 0; i + tmp <= n; i++) spt[i][j] = max(max(spt[i][j-1], spt[i+tmp/3][j-1]), spt[i+2*tmp/3][j-1]); } }int RMQ(int l, int r) { int k = log(r-l+1)/log(3); int tmp = pow3(k); int ans = max(spt[l][k], spt[r-tmp+1][k]); if(r-l+1 > 2*tmp) ans = max(ans, spt[l+tmp][k]);//中间还有一段 return ans;}
阅读全文
0 0
- $n\log_3n$预处理的 Sparse Table ST表
- Sparse Table ST表
- ST表(Sparse Table)
- ST算法(Sparse Table)
- ST算法(Sparse-Table)
- RMQ算法(一):ST表(Sparse Table)
- RMQ问题--ST算法(Sparse Table)
- RMQ问题----ST(Sparse-Table)算法
- RMQ问题----ST(Sparse-Table)算法
- ST(Sparse Table)算法求解RMQ问题
- RMQ (Range Minimum/Maximum Query)问题的ST(Sparse Table)解法
- 预处理之ST表
- sparse-table
- Sparse-Table
- 静态RMQ的Sparse Table算法
- RMQ问题的Sparse-Table算法
- 2维Sparse Table
- Sparse Table算法
- NIO学习(二) buffer
- 实时故障树
- oracle存储过程转mysql存储过程修改方法
- 二叉树遍历
- 网页设计布局(二): F 型布局
- $n\log_3n$预处理的 Sparse Table ST表
- Bedroom Bathroom Pack使用说明
- 20个非常有用的Java程序片段(转)
- PyCharm 2017 官网 下载 安装 设置 配置 (主题 字体 字号) 使用 入门 教程
- Intellij——安装&破解
- springboot 各种读取文件的姿势
- crosswalk android打包生成一个apk
- java实现删除千万级数据的大key
- 国际化