题意:
给你一个有n个数的数字序列,然后有m组询问,每组询问是问第k次出现的v在序列里的小标是多少?
思路:
简单题目,直接开个二维的容器就行了,标记出现次数可以开个数组或者是一维的容器,没啥想法直接写就行了。
#include<map>
#include<stdio.h>
using namespace std;
map<int ,map<int ,int> >Ans;
map<int ,int>mark;
int main ()
{
int n ,m ,v ,k ,i ,a;
while(~scanf("%d %d" ,&n ,&m))
{
Ans.clear();
mark.clear();
for(i = 1 ;i <= n ;i ++)
{
scanf("%d" ,&a);
Ans[a][++mark[a]] = i;
}
while(m--)
{
scanf("%d %d" ,&k ,&v);
printf("%d
" ,Ans[v][k]);
}
}
return 0;
}