题目链接: UVA, 你懂的
题目描述: 给出一串数, 求第几次出现的数字几?
解题思路: 北交集训STL水题
代码:
#include <iostream> #include <cstdio> #include <cstring> #include <map> using namespace std; const int MAXN = 1e5 + 7; map<int, int> cnt; map<pair<int, int>, int> M; int arr[MAXN]; int main() { int n, m; while( scanf( "%d%d", &n, &m ) != EOF ) { cnt.clear(); M.clear(); memset(arr, 0, sizeof(arr)); for( int i = 1; i <= n; i++ ) { scanf( "%d", &arr[i]); if( cnt.count(arr[i]) == 0 ) { cnt.insert(make_pair(arr[i], 1)); M.insert(make_pair(make_pair(1, arr[i]), i)); } else { cnt[arr[i]]++; M.insert(make_pair(make_pair(cnt[arr[i]], arr[i]), i)); } } for( int i = 1; i <= m; i++ ) { int times, num; scanf( "%d%d", ×, &num ); printf( "%d\n", M[make_pair(times, num)]); } } return 0; }
思考: 没啥的, 继续补题吧
时间: 2024-10-02 00:24:39