标签:
昊昊喜欢运动
他NN天内会参加MM种运动(每种运动用一个[1,m][1,m]的整数表示)
舍友有QQ个问题
问昊昊第ll天到第rr天参加了多少种不同的运动
输入两个数NN, MM (1≤N≤20001≤N≤2000, 1≤M≤1001≤M≤100);
输入NN个数aiai表示在第i天昊昊做了第aiai类型的运动;
输入一个数QQ(1≤Q≤1061≤Q≤106);
输入QQ行 每行两个数 ll, rr(1≤l≤r≤n1≤l≤r≤n);
一共QQ行
每一行输出一个数 表示昊昊在第ll天到第rr天一共做了多少种活动
Sample Input | Sample Output |
---|---|
5 3 1 2 3 2 2 3 1 4 2 4 1 5 |
3 2 3 |
#include<bits/stdc++.h> using namespace std; #define ll long long #define pi (4*atan(1.0)) const int N=2e3+10,M=4e6+10,inf=1e9+10; int sum[N][N]; int a[N]; int main() { int n,m,t; scanf("%d%d",&n,&m); for(int i=1; i<=n; i++) scanf("%d",&a[i]); for(int i=1; i<=n; i++) { for(t=1; t<=m; t++) sum[t][i]=sum[t][i-1]; sum[a[i]][i]=sum[a[i]][i-1]+1; } int q; scanf("%d",&q); while(q--) { int l,r,ans=0; scanf("%d%d",&l,&r); for(int i=1;i<=m;i++) if(sum[i][r]-sum[i][l-1]>0) ans++; printf("%d\n",ans); } return 0; }
标签:
原文地址:http://www.cnblogs.com/jhz033/p/5837520.html