UVA - 11991 Easy Problem from Rujia Liu?
题意:问你序列中某个数v出现第k次时的位置。(序列长度小于10万)
题解:
F1:
利用C++的STL
//使用map+pair做到二维数组暴力查找效果#include<iostream>#include<map>#include<cstdio>#include<utility>#include<cstring>using namespace std;map< pair<int,int>,int>mymap;int num[1001001];int main(){ int n,m; while(scanf("%d%d",&n,&m)!=EOF) { memset(num,0,sizeof(num)); mymap.clear(); for(int i=1;i<=n;i++) { int x; scanf("%d",&x); num[x]++; mymap.insert(make_pair(make_pair(x,num[x]),i)); } for(int i=1;i<=m;i++) { int t,x; scanf("%d%d",&t,&x); printf("%d\n",mymap.find(make_pair(x,t))->second); } } return 0;}