uva 11991 查询中容器的运用

题目大意:一个n个整数的数组,m条查询指令。(1<=n,m<=100 000)每次询问第k个整数v的下标值,若不存在输出0。

#include<iostream>
#include<map>
#include<vector>
#include<cstdio>
using namespace std;

map<int,vector<int> > a;

int main()
{
    int n,m,i,p,k,v;
    while(scanf("%d %d",&n,&m) == 2)
    {
        a.clear();
        for(i=0;i<n;i++)
        {
            scanf("%d",&p);
            if(!a.count(p)) a[p]=vector<int> ();
            a[p].push_back(i+1);
        }
        while(m--)
        {
            scanf("%d %d",&k,&v);
            if(!a.count(v) || a[v].size() < k) printf("0
");
            else printf("%d
",a[v][k-1]);
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/xiong-/p/3534687.html