博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3264 Balanced Lineup
阅读量:6413 次
发布时间:2019-06-23

本文共 1609 字,大约阅读时间需要 5 分钟。

RMQ模板题,用ST算法

 

//DP预处理//dp[i][j] 表示从下标i开始,长度为2^j的最大值//状态转移方程 dp[i][j] = max{ dp[i][j-1] , dp[i+2^(j-1)][j-1] }//也就是一个长度为2^j的区间,二分为两个2^(j-1)的长度//对于查询[a,b]以内的最大值,先求出区间长度LEN = b-a+1//查询结果为 res = max{dp[a][k] , dp[b-2^k+1][k]} , 关键是k,是什么,怎么计算//当满足 2^k >= LEN/2  , 且k最小时,这个k就是我们要的值//k可以用计算公式一步算得 : k = (int) (log((double)(b-a+1))/log(2.0))//另外一个问题,对于构建dp值的时候,dp[i][j],这个j最大去到多少?//道理是一样的,对于总区间,长度为L,同样是 2^j >= L/2 , 取最小的j就是我们要的值//所以也可以用公式一步计算出来  j = (int) (log((double)L) / log(2.0))#include 
#include
#include
#include
using namespace std;#define N 50010#define M 20int n,m,a[N],dp[N][M],__dp[N][M];void TEST(){ cout << "最大值" << endl; int K = (int) (log((double)n) / log(2.0)); for(int i=1; i<=n; i++) for(int j=0; j<=K; j++) printf("dp[%d,%d] = %d\n",i,j,dp[i][j]); cout << "最小值" << endl; for(int i=1; i<=n; i++) for(int j=0; j<=K; j++) printf("__dp[%d,%d] = %d\n",i,j,__dp[i][j]);}void ST(){ for(int i=1; i<=n; i++) dp[i][0] = __dp[i][0] = a[i]; int K = (int) (log((double)n) / log(2.0)); for(int j=1; j<=K; j++) for(int i=1; i+(1<
<= n; i++) { int k = i+(1<<(j-1)); dp[i][j] = max( dp[i][j-1] , dp[k][j-1] ); __dp[i][j] = min( __dp[i][j-1] , __dp[k][j-1]); }}int RMQ(int x ,int y){ int K = (int) (log((double)(y-x+1)) / log(2.0)); int k = y-(1<
> n >> m) { for(int i=1; i<=n ;i++) cin >> a[i]; ST(); //TEST(); while(m--) { int x,y; cin >> x >> y; int res = RMQ(x,y); cout << res << endl; } } return 0;}

 

转载地址:http://rhbra.baihongyu.com/

你可能感兴趣的文章
Cygwin不好用
查看>>
jQuery插件之验证控件jquery.validate.js
查看>>
[经验]无线鼠标和无线键盘真的不能用了?——雷柏的重生之路~
查看>>
【转】plist涉及到沙盒的一个问题
查看>>
GNU make manual 翻译( 一百四十五)
查看>>
重构之美-走在Web标准化设计的路上[复杂表单]3 9 Update
查看>>
linux中的优先搜索树的实现--prio_tree【转】
查看>>
转载: 打造自己的asp.net验证控件
查看>>
重构之美-跨越Web标准,触碰语义网[开门见山:Microformat]
查看>>
git入门与实践【转】
查看>>
WPF 虚拟键盘
查看>>
储存卡无法打开专家教您怎么数据恢复
查看>>
彼得原理
查看>>
如何利用【百度地图API】,制作房产酒店地图?(下)——结合自己的数据库...
查看>>
[20171113]修改表结构删除列相关问题3.txt
查看>>
特征选择
查看>>
在Winform程序中设置管理员权限及为用户组添加写入权限
查看>>
RTMP直播到FMS中的AAC音频直播
查看>>
多能互补提速 加快我国能源转型和现代能源体系建设
查看>>
《JavaScript设计模式》——2.5 多种调用方式——多态
查看>>