Codeforces Round #136 (Div. 2) D. Little Elephant and Array
来源:互联网 发布:怎么禁止装软件 编辑:程序博客网 时间:2024/05/21 13:22
The Little Elephant loves playing with arrays. He has array a, consisting of n positive integers, indexed from 1 to n. Let's denote the number with index i as ai.
Additionally the Little Elephant has m queries to the array, each query is characterised by a pair of integers lj and rj (1 ≤ lj ≤ rj ≤ n). For each query lj, rj the Little Elephant has to count, how many numbers x exist, such that number x occurs exactly x times among numbers alj, alj + 1, ..., arj.
Help the Little Elephant to count the answers to all queries.
The first line contains two space-separated integers n and m (1 ≤ n, m ≤ 105) — the size of array a and the number of queries to it. The next line contains n space-separated positive integers a1, a2, ..., an (1 ≤ ai ≤ 109). Next m lines contain descriptions of queries, one per line. The j-th of these lines contains the description of the j-th query as two space-separated integers lj and rj (1 ≤ lj ≤ rj ≤ n).
In m lines print m integers — the answers to the queries. The j-th line should contain the answer to the j-th query.
7 23 1 2 2 3 3 71 73 4
31
代码:
#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>using namespace std;int n,m,i,j,k,a[100005],b[100005],c[100005];int d[505][100005],s[100005],L,R;int main(){ scanf("%d%d",&n,&m); { for(i=1;i<=n;i++) { scanf("%d",&a[i]); if(a[i]<=n&&(++b[a[i]]==a[i])) c[a[i]]=1; }//筛选出整个区间上数值为a的数的个数大于等于a的数 int t=0; for(i=1;i<=n;i++) { if(c[i]==0) continue; for(j=1;j<=n;j++) if(a[j]==i) d[t][j]=d[t][j-1]+1; else d[t][j]=d[t][j-1]; s[t++]=i; }//求出t在0~j区间上个个数,用d[t][j]表示,另外对数据进行离散化。 while(m--) { int ans=0; scanf("%d%d",&L,&R); for(i=0;i<t;i++) { if(d[i][R]-d[i][L-1]==s[i]) ans++; } cout<<ans<<endl; } }return 0;}
- Codeforces Round #136 (Div. 2) D. Little Elephant and Array
- Codeforces Round #136 (Div. 2) D. Little Elephant and Array
- Codeforces Round #136 (Div. 2) Little Elephant and Array
- Codeforces Round #136 (Div. 2) D. Little Elephant and Array 线段树 离线处理
- Codeforces Round #136 (Div. 1) B. Little Elephant and Array
- Codeforces Round #136 (Div. 1) B. Little Elephant and Array
- Codeforces Round #136 (Div. 2) A. Little Elephant and Function
- Codeforces Round #136 (Div. 2) B. Little Elephant and Numbers
- Codeforces Round #136 (Div. 2) C. Little Elephant and Problem
- Codeforces Round #136 (Div. 1) B. Little Elephant and Array(简单莫队)
- codeforces 221D Little Elephant and Array
- codeforces 221D Little Elephant and Array
- CodeForces Round #136(220B) - Little Elephant and Array
- Codeforces Round #129 (Div. 2)A. Little Elephant and Rozdil
- Codeforces Round #129 (Div. 2) B. Little Elephant and Sorting
- (Codeforces Round #136 (Div. 2))A. Little Elephant and Function(递归分析,简单)
- Codeforces Round #136 (Div. 2) / 221B Little Elephant and Numbers (数论)
- Codeforces Round #136 (Div. 2) / 221A Little Elephant and Function (数学)
- 虚幻引擎4(Unreal Engine 4/UE4)正式发布!每月19美元
- 位运算简介及实用技巧(四):实战篇
- 人的健康一天之中最重要的时刻
- poj 1989 The Cow Lineup 最短非子序列问题
- Jquery插件--easyUI属性汇总
- Codeforces Round #136 (Div. 2) D. Little Elephant and Array
- linux 的ifconfig命令
- mysql event 即 mssql的job作业
- 蓝桥杯- 九宫重排
- 2007年4月计算机等级考试C++考试试卷参考答案及解析
- 指针数组 多维数组C语言
- PHP多维数组eval与循环实现以及效率(真实测试过,研究了半天后来才找到的资料,对组合报表很有用)
- 理解 Redis setbit
- excel中取整和取模函数