POJ--3386--Frequent values--RMQ
来源:互联网 发布:网络使人更亲近的例子 编辑:程序博客网 时间:2024/06/07 16:18
贴完代码就滚,杭州邀请赛被虐的节奏-_-#
#include<iostream>#include<cstring>#include<cstdio>#define maxn 100200using namespace std;int num[maxn],ic,last_num;int pos[maxn];int a[maxn],n;int sum[maxn];int x,y,m;int dp[maxn][20];bool init(){ ic=0;last_num=10000000; scanf("%d",&n); if(n==0)return 0; scanf("%d",&m); memset(num,0,sizeof(num)); memset(sum,0,sizeof(sum)); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); if(a[i]!=last_num) { ++ic; num[ic]++; last_num=a[i]; } else { num[ic]++; } pos[i]=ic; } for(int i=1;i<=ic;i++)sum[i]=num[i]+sum[i-1]; return 1;}void RMQ_init(){ memset(dp,0,sizeof(dp)); for(int i=1;i<=ic;i++) dp[i][0]=num[i]; for(int j=1;(1<<j)<=ic;j++) { for(int i=1;i+(1<<j)-1<=ic;i++) { dp[i][j]=max(dp[i][j-1],dp[i+(1<<(j-1))][j-1]); } }}int RMQ(int a,int b){ int len=0; while(a+(1<<(len+1))-1<=b)len++; return max(dp[a][len],dp[b-(1<<len)+1][len]);}void solve(){ int p1,p2,temp; RMQ_init(); for(int i=0;i<m;i++) { scanf("%d%d",&x,&y); if(x>y)swap(x,y); p1=pos[x]; p2=pos[y]; if(p1!=p2) temp=max(sum[p1]-x+1,y-sum[p2-1]); else temp=y-x+1; if(p1+1<=p2-1) { temp=max(temp,RMQ(p1+1,p2-1)); } printf("%d\n",temp); }}int main(){ //freopen("3286.in","r",stdin); while(init()) solve(); return 0;}
- POJ--3386--Frequent values--RMQ
- poj 3368 Frequent values //RMQ
- POJ 3368 Frequent Values(RMQ)
- [POJ 3368]Frequent values(RMQ)
- Frequent values - POJ 3368 RMQ
- POJ--3368--Frequent values【RMQ】
- POJ 3368 Frequent values (RMQ)
- POJ 3368 Frequent values(RMQ)
- POJ 3368 Frequent values (RMQ)
- POJ 3368 Frequent Values(RMQ)
- POJ 3368 Frequent values RMQ
- POJ 3368 Frequent values (RMQ)
- POJ 3368 Frequent values RMQ
- poj 3368 Frequent values(RMQ)
- poj 3368 Frequent values--RMQ
- Frequent values(POJ-1806)(RMQ)
- poj 3386 -- Frequent values (RMQ/线段树)
- POJ 3368 Frequent values RMQ / 线段树
- div+css基础——1.页面全局属性设置
- 数据库(1)
- orcale 基本语句
- 中语言版 linux操作系统项目正在筹备
- Java 各进制间的转换
- POJ--3386--Frequent values--RMQ
- Hibernate 异常org.hibernate.LazyInitializationException: could not initialize proxy - no Session
- C/C++中static关键字详解
- [Bluetooth] Android Framework BluetoothA2dpService
- mongodb 无法启动的时候
- div+css基础——2.网页宽度和居中设置
- CSS3——iPhone
- VB与API学习笔记(7)动画与特效
- Android学习:用户界面UI之AlertDialog