UVA 11991 STL中map、vector的應用
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3142
Problem E
Easy Problem from Rujia Liu?
Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ contests like Rujia Liu's Presents 1 and 2), he occasionally sets easy problem (for example, 'the Coco-Cola Store' in UVa OJ), to encourage more people to solve his problems :D
Given an array, your task is to find the k-th occurrence (from left to right) of an integer v. To make the problem more difficult (and interesting!), you'll have to answer m such queries.
Input
There are several test cases. The first line of each test case contains two integers n, m(1<=n,m<=100,000), the number of elements in the array, and the number of queries. The next line contains n positive integers not larger than 1,000,000. Each of the following m lines contains two integer k and v (1<=k<=n, 1<=v<=1,000,000). The input is terminated by end-of-file (EOF). The size of input file does not exceed 5MB.
Output
For each query, print the 1-based location of the occurrence. If there is no such element, output 0 instead.
Sample Input
8 4 1 3 2 2 4 3 2 1 1 3 2 4 3 2 4 2
Output for the Sample Input
2 0 7 0
Rujia Liu's Present 3: A Data Structure Contest Celebrating the 100th Anniversary of Tsinghua University
Special Thanks: Yiming Li
Note: Please make sure to test your program with the gift I/O files before submitting!
題目大意:給出包含n個整數的陣列,你需要回答若干詢問,每次詢問的個數是兩個整數,k和v,輸出從左到右第k個v的下標(陣列的編號從1到n)
解題思路:見程式碼
#include <stdio.h>
#include <vector>
#include <map>
#include <vector>
using namespace std;
map<int ,vector<int> >a;//最後兩個 > 不要連寫,否則會被誤認為 >>
int main()
{
int m,n,x,y;
while(~scanf("%d%d",&n,&m))
{
a.clear();
for(int i=0;i<n;i++)
{
scanf("%d",&x);
if(!a.count(x))
a[x]=vector<int>();
a[x].push_back(i+1);
}
while(m--)
{
scanf("%d%d",&x,&y);
if(!a.count(y)||a[y].size()<x)
printf("0\n");
else
printf("%d\n",a[y][x-1]);
}
}
return 0;
}
相關文章
- STL——STL中vector的實現原理
- STL vector中的shrink_to_fit方法(32)
- STL中map用法詳解
- C++ STL -- vectorC++
- 《STL原始碼剖析》-- stl_vector.h原始碼
- 初探STL容器之Vector
- STL:vector用法總結
- STL Vector remove()和erase()的使用REM
- STL的map使用和分析
- STL原始碼剖析——vector容器原始碼
- C++ STL學習——vectorC++
- STL 之 vector 容器詳解
- C++_STL—容器Vector篇C++
- 《STL原始碼剖析》-- stl_map.h原始碼
- GUN C++ STL中的vector的記憶體分配器C++記憶體
- Vector在Java程式設計中的應用 (轉)Java程式設計
- vector 與map的下標操作
- 《STL原始碼剖析》-- stl_hash_map.h原始碼
- STL:map用法總結
- 入門計劃->學用stl std::map (轉)
- 增強for迴圈在Map中的應用
- map和set對vector排序排序
- 精通標準模板庫STL的向量Vector用法
- stl 中list 或者vector正確使用find查詢類物件物件
- stl原始碼分析——map/multimap原始碼
- C++_STL—容器Map篇C++
- STL vector的內部實現原理及基本用法
- C++STL第二篇(vector的原理用法)C++
- stl map下標引用元素的副作用
- 例說資料結構&STL(一)——vector資料結構
- POJ 2503-Babelfish(STL-map)Babel
- UVA 673 括號的匹配——經典棧的應用
- 關於c++ STL map 和 unordered_map 的效率的對比測試C++
- 演算法學習之路|用C++刷演算法會用到的STL(一)——vector演算法C++
- C++基礎::非型別模板引數在STL中的應用C++型別
- 例說資料結構&STL(十一)——hash_map/unordered_map資料結構
- 例說資料結構&STL(九)——map資料結構
- UVA 11020 Efficient Solutions+multiset的應用