• UESTC 1256 昊昊爱运动 Map


    昊昊爱运动

    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
    ", a[l][r]);
        }
        return 0;
    }
  • 相关阅读:
    expect脚本实例
    Linux dialog详解(图形化shell)
    makefile——小试牛刀
    gdb入门
    linux常见系统调用函数列表
    linux前后台任务的切换以及执行暂停
    centos 7.0 lnmp安装部署步骤
    环境列表
    setjmp与longjmp非局部跳转函数的使用
    malloc,calloc,alloca和free函数
  • 原文地址:https://www.cnblogs.com/Noevon/p/5675085.html
Copyright © 2020-2023  润新知