【暑假】[实用数据结构]UVa11991 Easy Problem from Rujia Liu?
2015-08-07 11:15
232 查看
UVa11991 Easy Problem from Rujia Liu?
思路: 构造数组data,使满足data[v][k]为第k个v的下标。因为不是每一个整数都会出现因此用到map,又因为每个数出现次数不等可能相差很大,因此用到vector。
注意:对于数据的清空与判空不要忘记,而map在调用之前必须有map.count的检查。
代码:
思路: 构造数组data,使满足data[v][k]为第k个v的下标。因为不是每一个整数都会出现因此用到map,又因为每个数出现次数不等可能相差很大,因此用到vector。
注意:对于数据的清空与判空不要忘记,而map在调用之前必须有map.count的检查。
代码:
#include<cstdio> #include<map> #include<vector> using namespace std; int main(){ int n,m; map<int,vector<int> > table; while(scanf("%d%d",&n,&m)==2) { table.clear(); int x; for(int i=1;i<=n;i++) { scanf("%d",&x); // if(!table.count(x)) table[x] = vector<int>(); //map.count()的判断很重要 //vector的初始化 table[x].push_back(i); } int k,v; for(int i=0;i<m;i++) { scanf("%d%d",&k,&v); if(!table.count(v) || table[v].size()<k) printf("0\n"); //在调用map之前定要count判断 else printf("%d\n",table[v][k-1]); //k-1 } } return 0; }
相关文章推荐
- 【暑假】[实用数据结构]UVa11995 I Can Guess the Data Structure!
- 数据结构之树和二叉树---二叉树的遍历
- 数据结构之树状数组
- 数据结构之树和二叉树---二叉树的基本操作
- 数据结构实验:连通分量个数
- 数据结构实验:连通分量个数
- 编程中最没用的东西是源代码,最有用的东西是算法和数据结构(转载)
- hdu1016 数据结构之面向过程的深搜算法
- 01-复杂度1. 最大子列和问题(20)
- 实验数据结构(保存了两日内书面实验报告) 列表中的整合
- 浅谈算法和数据结构: 一 栈和队列
- 浅谈算法和数据结构: 二 基本排序算法
- 浅谈算法和数据结构: 三 合并排序
- 浅谈算法和数据结构: 四 快速排序
- 浅谈算法和数据结构: 五 优先级队列与堆排序
- 浅谈算法和数据结构: 六 符号表及其基本实现
- 浅谈算法和数据结构: 七 二叉查找树
- 浅谈算法和数据结构: 八 平衡查找树之2-3树
- 浅谈算法和数据结构: 十 平衡查找树之B树
- 浅谈算法和数据结构: 九 平衡查找树之红黑树