UVA 11235 Frequent values RMQ
来源:互联网 发布:mac子弹头rebel 编辑:程序博客网 时间:2024/05/17 08:31
[Submit] [Go Back] [Status]
Description
University of Ulm Local Contest
Problem F: Frequent values
You are given a sequence of n integers a1 , a2 , ... , an in non-decreasing order. In addition to that, you are given several queries consisting of indicesi and j (1 ≤ i ≤ j ≤ n). For each query, determine the most frequent value among the integers ai , ... , aj.
Input Specification
The input consists of several test cases. Each test case starts with a line containing two integers n and q (1 ≤ n, q ≤ 100000). The next line contains nintegers a1 , ... , an (-100000 ≤ ai ≤ 100000, for each i ∈ {1, ..., n}) separated by spaces. You can assume that for each i ∈ {1, ..., n-1}: ai ≤ ai+1. The following q lines contain one query each, consisting of two integers i and j (1 ≤ i ≤ j ≤ n), which indicate the boundary indices for the query.
The last test case is followed by a line containing a single 0.
Output Specification
For each query, print one line with one integer: The number of occurrences of the most frequent value within the given range.
Sample Input
10 3-1 -1 1 1 1 1 3 10 10 102 31 105 100
Sample Output
143
A naive algorithm may not run in time!
Source
Root :: Competitive Programming 3: The New Lower Bound of Programming Contests (Steven & Felix Halim) :: Data Structures and Libraries :: Data Structures with Our-Own Libraries :: Tree-related Data Structures
Root :: AOAPC I: Beginning Algorithm Contests -- Training Guide (Rujia Liu) :: Chapter 3. Data Structures :: Maintaining Interval Data :: Examples
Root :: Competitive Programming 2: This increases the lower bound of Programming Contests. Again (Steven & Felix Halim) :: Data Structures and Libraries :: Data Structures with Our-Own Libraries :: Tree-related Data Structures
[Submit] [Go Back] [Status]
#include <cstdlib>#include <cctype>#include <cstring>#include <cstdio>#include <cmath>#include <algorithm>#include <vector>#include <string>#include <iostream>#include <map>#include <set>#include <queue>#include <stack>#include <bitset>using namespace std;#define PB push_back#define MP make_pair#define REP(i,n) for(int i=0;i<(n);++i)#define FOR(i,l,h) for(int i=(l);i<=(h);++i)#define DWN(i,h,l) for(int i=(h);i>=(l);--i)#define CLR(vis,pos) memset(vis,pos,sizeof(vis))#define PI acos(-1.0)#define INF 0x3f3f3f3f#define LINF 1000000000000000000LL#define eps 1e-8typedef long long ll;const int maxn=100000+100;int n,q;int a[maxn];int val[maxn],num[maxn];int g;int id[maxn],Left[maxn],Right[maxn];int d[maxn][20];void RMQ_init(int A[],int n){ FOR(i,1,n) d[i][0]=A[i]; for(int j=1;(1<<j)<=n;j++) for(int i=1;i+(1<<j)-1<=n;i++) d[i][j]=max(d[i][j-1],d[i+ (1<<(j-1))][j-1]);}int RMQ(int L,int R){ int k=0; while((1<<(k+1))<=R-L+1) k++; return max(d[L][k],d[R-(1<<k)+1][k]);}int main(){ while(cin>>n && n){ scanf("%d",&q); g=0; val[0]=INF; FOR(i,1,n){ scanf("%d",&a[i]); if(a[i]!=val[g]){ g++; val[g]=a[i]; num[g]=1; id[i]=g,Left[g]=i,Right[g-1]=i-1; } else{ num[g]++; id[i]=g; } } Right[g]=n; /*FOR(i,1,g){ printf("%d %d %d %d\n",val[i],num[i],Left[i],Right[i]); }*/ RMQ_init(num,g); int l,r; REP(i,q){ scanf("%d%d",&l,&r); int l_id=id[l]; int r_id=id[r]; //printf("%d %d\n",l_id,r_id); if(l_id==r_id){ printf("%d\n",r-l+1); } else{ int ans=-INF; ans=max(Right[l_id]-l+1,r-Left[r_id]+1); if(r_id-1>=l_id+1) ans=max(ans,RMQ(l_id+1,r_id-1)); printf("%d\n",ans); } } } return 0;}
- UVA 11235 Frequent Values ---RMQ
- UVa 11235 Frequent values(RMQ)
- UVA 11235 - Frequent values(RMQ)
- uva 11235 Frequent values RMQ
- uva 11235 - Frequent values(RMQ)
- UVA 11235 Frequent values RMQ
- 【RMQ】 UVA 11235 Frequent values
- UVA 11235 Frequent values (RMQ)
- UVA 11235 Frequent values (RMQ)
- [RMQ]UVa 11235 - Frequent values
- UVa 11235 Frequent values (RMQ)
- UVA 11235 Frequent values(RMQ)
- UVA 11235 Frequent values(RMQ)
- UVa - 11235 - Frequent values(RMQ)
- uva 11235 - Frequent values(RMQ问题)
- POJ 3368 Frequent values (UVA 11235)(RMQ)
- UVA 11235 Frequent values(RMQ)
- Uva 11235 Frequent values 【RMQ问题】
- 自动控制 (四)
- 项目管理能力方面,在美国硅谷,
- The Intersting Digit
- hdu1914 稳定婚姻问题
- 高端人才一般不轻易跳槽
- UVA 11235 Frequent values RMQ
- Codeforces Round #271 (Div. 2) --B Worms (二分)
- 基于IT手段就有了明显的不同。
- PNG8和PNG24的区别
- 用PS制作小清新文字图片的方法
- 在可预见的未来,IT化的分工会让智能
- yii的邮件发送扩展的使用
- 人才供应链管理模式
- 新一代Windows Server技术预览版已发布