美文网首页
map+vector UVa 11991

map+vector UVa 11991

作者: laochonger | 来源:发表于2018-05-05 10:51 被阅读0次

题意:找到数组中第x个y的下标
分析:这题有很多做法,下面给出一种效率比较高的方法,即用map与vector创建一个二维都不定长且一维不定索引的二维数组,这样做方便查找但不方便进行迭代遍历
map<int , vector<int> >a;
if(!a.count(x)) a[x] = vector<int>(); // 如果x未出现过,则创建一个以x为第一维索引的不定长数组,即要查找的数为第一维,第几个为第二维
if(!a.count(y)||a[y].size()<x) printf("0\n");//第一维没有索引y或者没有x个y
a[x].push_back(i+1); // 不定长数组中储存着下标
printf("%d\n", a[y][x-1]);

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

map<int , vector<int> >a;// > > 要用空格分开

int main(){
    int n,m, x,y;
    while(scanf("%d %d", &n, &m) == 2){
        a.clear();
        for(int i = 0; i < n; i++){
            scanf("%d", &x);
            if(!a.count(x)) a[x] = vector<int>(); // 如果x未出现过,则创建一个以x为第一维索引的不定长数组,即要查找的数为第一维,第几个为第二维 
            a[x].push_back(i+1); // 不定长数组中储存着下标 
        }
        while(m--){
            scanf("%d%d", &x,&y);
            if(!a.count(y)||a[y].size()<x) printf("0\n");//第一维没有索引y或者没有x个y 
            else printf("%d\n", a[y][x-1]); 
        } 
        
    }
    return 0;
} 

相关文章

  • map+vector UVa 11991

    题意:找到数组中第x个y的下标分析:这题有很多做法,下面给出一种效率比较高的方法,即用map与vector创建一个...

  • 素数练习题

    UVA 10375 UVA 10791 UVA10375 Choose and divide 题解 先素数打表,然...

  • 有趣的数学题

    UVA12716 UVA11582 UVA12716 GCD XOR 题解 参考这题用到2个结论a ^ b = c...

  • 字典树

    UVA 11488题目链接https://uva.onlinejudge.org/index.php?option...

  • ACM 国内外几个网站 & 题目分类

    国外 西班牙Valladolid大学 Uva:https://uva.onlinejudge.org俄罗斯Ural...

  • 皮肤科学小知识:

    对皮肤造成损伤的紫外线主要是UVB和UVA。 UVA能穿透玻璃对皮肤的穿透能力也比较强,可以深达真皮,UVA的生物...

  • ACM刷题打卡-151215

    UVa 272 - TEX Quotes 水题。字符替换。 UVa 10082 - WERTYU 第一次提交WA,...

  • 美肤mini课堂之防晒的理论知识

    1、关于UVA和UVB UVB是波短的紫外线,威力次于UVA,只能晒到表皮层,能把皮肤晒红、晒伤;UVA是波长的紫...

  • 2020-08-22

    达到精准美白的目的,防UVA更重要,之前一直有说法,UVA与老化的关系更直接。毕竟UVA的辐射量是UVB的近50倍...

  • 可连接不同探头的UVA紫外辐射照度计

    目前林上的紫外辐射照度计LS125,一个主机可连接9款不同的探头,UVA波段的有五款,分别是UVA、UVA-X1、...

网友评论

      本文标题:map+vector UVa 11991

      本文链接:https://www.haomeiwen.com/subject/xxysrftx.html