uva 11991 简单hash

数据最大只有100W,果断hash之。

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <vector>
 5 using namespace std;
 6 
 7 const int N = 1000001;
 8 vector<int> v[N];
 9 
10 void init()
11 {
12     for ( int i = 0; i < N; i++ )
13     {
14         v[i].clear();
15     }
16 }
17 
18 int query( int k, int val )
19 {
20     if ( v[val].size() < k ) return 0;
21     return v[val][k - 1];
22 }
23 
24 int main ()
25 {
26     int n, m;
27     while ( scanf("%d%d", &n, &m) != EOF )
28     {
29         init();
30         for ( int i = 1; i <= n; i++ )
31         {
32             int tmp;
33             scanf("%d", &tmp);
34             v[tmp].push_back(i);
35         }
36         while ( m-- )
37         {
38             int k, val;
39             scanf("%d%d", &k, &val);
40             printf("%d\n", query( k, val ));
41         }
42     }
43     return 0;
44 }

 

posted @ 2015-08-23 14:41  hxy_has_been_used  阅读(103)  评论(0编辑  收藏  举报