Easy Problem from Rujia Liu?(UVa 11991) map应用
2016-10-05 08:58
501 查看
来自《算法竞赛入门经典训练指南》
给出一个n个整数的数组,有m个查询,每次查询两个整数k和v,输出从左到右第k个v的下标(数组的下标从1到n),不存在输出0
时间复杂度为O(nlogn)
1.题目原文
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3142给出一个n个整数的数组,有m个查询,每次查询两个整数k和v,输出从左到右第k个v的下标(数组的下标从1到n),不存在输出0
2.解题思路
可以利用map,每个值v映射一个下标k,即data[v]。而题目要求的是可能有多个k,因此data[v]应该是一个数组,显然数组大小未定,用不定长数组vector很容易解决。时间复杂度为O(nlogn)
3.AC代码
#include <algorithm> #include <cctype> #include <cmath> #include <cstdio> #include <cstdlib> #include <cstring> #include <iomanip> #include <iostream> #include <map> #include <queue> #include <string> #include <set> #include <vector> #include<cmath> #include<bitset> #include<sstream> using namespace std; #define INF 0x7fffffff #define maxn 10005 map<int,vector<int> >a; int main() { int n,m,k,v; while(scanf("%d%d",&n,&m)==2){ for(int i=0;i<n;i++){ int x; scanf("%d",&x); if(!a.count(x)){ a[x]=vector<int>(); } a[x].push_back(i+1); } while(m--){ scanf("%d%d",&k,&v); if(!a.count(v)||a[v].size()<k){ printf("0\n"); } else printf("%d\n",a[v][k-1]); } } return 0; }
相关文章推荐
- uva 11991 Easy Problem from Rujia Liu?(map应用)
- UVa11991 Easy Problem from Rujia Liu? map,vector
- UVA 11991 Easy Problem from Rujia Liu?(map,vector)
- UVA 11991 Easy Problem from Rujia Liu?(vector map)
- UVa 11991 Easy Problem from Rujia Liu? / STL-MAP
- Uva 11991 - Easy Problem from Rujia Liu?(map 查找)
- UVa 11991:Easy Problem from Rujia Liu?(STL练习,map+vector)
- UVA 11991 Easy Problem from Rujia Liu?(STL应用)
- UVA 11991 Easy Problem from Rujia Liu?(STL应用)
- uva 11991 Easy Problem from Rujia Liu? map+vector
- UVA - 11991 Easy Problem from Rujia Liu? map+vector
- UVA11991——Easy Problem from Rujia Liu?(map+vector)
- UVa 11991 Easy Problem from Rujia Liu? (用map离散化)
- UVA - 11991 Easy Problem from Rujia Liu?(map)
- uva 11991 Easy Problem from Rujia Liu?(数据结构:map的简单用法)
- [UVA] 11991 - Easy Problem from Rujia Liu? [STL应用]
- UVA 11991 Easy Problem from Rujia Liu?
- uva11991 Easy Problem from Rujia Liu?
- uva 11991 - Easy Problem from Rujia Liu?
- uva 11991 Easy Problem from Rujia Liu?