码迷,mamicode.com
首页 > 其他好文 > 详细

UESTC 1256 昊昊爱运动 Map

时间:2016-07-16 06:46:10      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

昊昊爱运动

Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others)

昊昊喜欢运动

N天内会参加M种运动(每种运动用一个[1,m]的整数表示)

舍友有QQ个问题

问昊昊第l天到第r天参加了多少种不同的运动

Input

输入两个数NM (1N20001M100);

输入N个数ai表示在第i天昊昊做了第ai类型的运动;

输入一个数Q(1≤Q≤106);

输入Q行 每行两个数 l, r(1lrn);

Output

一共Q行

每一行输出一个数 表示昊昊在第l天到第r天一共做了多少种活动

Sample input and output

Sample InputSample Output
5 3
1 2 3 2 2
3
1 4
2 4
1 5
3
2
3

Source

第七届ACM趣味程序设计竞赛第二场(正式赛)
 
题目大意:

输入两个数NM (1N20001M100);

输入N个数ai表示在第i天昊昊做了第ai类型的运动;

输入一个数Q(1≤Q≤106);

输入Q行 每行两个数 l, r(1lrn);

输出一个数 表示昊昊在第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;
}

 

UESTC 1256 昊昊爱运动 Map

标签:

原文地址:http://www.cnblogs.com/Noevon/p/5675085.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!