UVa 11991 - Easy Problem from Rujia Liu?
给定一个数组,查询第k个出现的v的位置
开 vector 。
1 #include <iostream> 2 #include <cstdio> 3 #include <vector> 4 using namespace std; 5 vector<int> mp[1000005]; 6 int n,m,a,b; 7 int main() 8 { 9 while(~scanf("%d%d",&n,&m)) 10 { 11 12 for(int i=1;i<=1000001;i++) mp[i].clear(); 13 for(int i=1;i<=n;i++) 14 { 15 scanf("%d",&a); 16 mp[a].push_back(i); 17 } 18 for(int i=1;i<=m;i++) 19 { 20 scanf("%d%d",&a,&b); 21 if(mp[b].size()>=a) 22 { 23 cout<<mp[b][a-1]<<endl; 24 } 25 else puts("0"); 26 } 27 } 28 }
我自倾杯,君且随意