UVa11991(map+vector)

来源:互联网 发布:tensorflow mnist.py 编辑:程序博客网 时间:2024/05/17 08:59

题目大意:让你在一个长度为n的序列中,快速找出第b个a的数组下标(比如序列:1 1 2  2,第一个2的下标是2)

截图思路:利用map数组和vector,造张“表”出来

代码:

#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<vector>#include<map>using namespace std;map<int,vector<int> >table;int n,m,a,b;int main(){        while(scanf("%d%d",&n,&m)!=EOF)        {                table.clear();                for(int i=1;i<=n;i++)                {                        scanf("%d",&a);                        if(!table.count(a))   table[a]=vector<int>();//³õʼ»¯Ò»Ï                        table[a].push_back(i);                }                for(int i=1;i<=m;i++)                {                        scanf("%d%d",&a,&b);                        if(!table.count(b)||table[b].size()<a)  printf("0\n");                        else printf("%d\n",table[b][a-1]);                }        }        return 0;}


0 0
原创粉丝点击