标签:
昊昊喜欢运动
他N天内会参加M种运动(每种运动用一个[1,m]的整数表示)
舍友有QQ个问题
问昊昊第l天到第r天参加了多少种不同的运动
输入两个数N, M (1≤N≤2000, 1≤M≤100);
输入N个数ai表示在第i天昊昊做了第ai类型的运动;
输入一个数Q(1≤Q≤106);
输入Q行 每行两个数 l, r(1≤l≤r≤n);
一共Q行
每一行输出一个数 表示昊昊在第l天到第r天一共做了多少种活动
Sample Input | Sample Output |
---|---|
5 3 1 2 3 2 2 3 1 4 2 4 1 5 |
3 2 3 |
输入两个数N, M (1≤N≤2000, 1≤M≤100);
输入N个数ai表示在第i天昊昊做了第ai类型的运动;
输入一个数Q(1≤Q≤106);
输入Q行 每行两个数 l, r(1≤l≤r≤n);
输出一个数 表示昊昊在第l天到第r天一共做了多少种活动
题解:预处理,map
#include <stdio.h> #include <map> using namespace std; map<int,int>mp; int a[2010][2010]; int b[2016]; int main() { int n, m, i, j, q, l, r; scanf("%d%d", &n, &m); for(i=1;i<=n;i++) scanf("%d", &b[i]); for(i=1;i<=n;i++) { mp.clear(); for(j=i;j<=n;j++) { mp[b[j]]++; a[i][j]=mp.size(); } } scanf("%d", &q); while(q--) { scanf("%d%d", &l, &r); printf("%d\n", a[l][r]); } return 0; }
标签:
原文地址:http://www.cnblogs.com/Noevon/p/5675085.html