NOJ 比赛成绩查询问题II hash_map
2015-04-16 11:36
302 查看
比赛成绩查询问题II
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 81920 KByte总提交 : 349 测试通过 : 41
题目描述
2014“华为杯”南京邮电大学大学生团体歌唱大赛参赛团队的队名由“2014nupthw”和顺序号组合而成,例如2014nupthw001、2014nupthw002、2014nupthw028、2014nupthw089等。大赛结束后,任何人都可以通过队名查询任何一支队伍的排名,同时也可以通过排名查询队名,这里队伍排名从1开始且无并列情况。主办方提供所有参赛团队队名和排名的对应列表以及需要咨询的参赛团队队名或排名,请你完成此次大赛的成绩查询工作。
输入
输入包括多个行:第1行给出参赛团体总数N、需要查询成绩的参赛团队数;接下来有N行,每一行先后给出参赛团体的队名和最终排名;接下来有M行,每一行给出需要查询排名的参赛团队的队名或者需要查询参赛团体队名的排名。这里1≤N<10000,1≤M≤1000000。
输出
对应输入中最后M行要查询排名的参赛团队的队名或者需要查询参赛团体队名的排名,输出M行,每一行给出要查询的相应参赛团队队名、排名,以一个空格分隔上述两项内容。
样例输入
4 3
2014nupthw089 2
2014nupthw028 1
2014nupthw001 4
2014nupthw002 3
2014nupthw002
2
2014nupthw028
样例输出
2014nupthw002 3
2014nupthw089 2
2014nupthw028 1
分析:这一题用map超时,用数组或者结构体就不用说了,更超时。
目前较好的解法就是使用哈希映射hash_map,对于查询输入队名的情况,我们直接使用哈希,对于查询输入排名的情况,我们额外定义了一个数组进行存储。当然也可以用反方向的hash_map,但是自己要写函数~
下面附上AC代码:
#include<iostream> #include<cstdlib> #include<cstdio> #include<cstring> #include<ext/hash_map> using namespace __gnu_cxx; using namespace std; int N,sn,a,b; char tt[10000+1][16],s[16]; struct eqstr { bool operator()(const int s1,const int s2) const //判断函数 { return s1==s2; } }; int main() { //freopen("data.in","r",stdin); //打开数据文件 scanf("%d%d",&N,&sn); hash_map<int,int,hash<int>,eqstr> mymap; memset(tt,'\0',sizeof(tt)); getchar(); for(int i=0;i<N;i++) { scanf("%s%d",&s,&b); a=atoi(s+10); //atoi将字符串转化成整型数 mymap[a]=b; strcpy(tt[b],s); } for(int i=0;i<sn;i++) { scanf("%s",&s); if(strlen(s)>=6){ a=atoi(s+10); if(mymap.find(a)!=mymap.end()) printf("%s %d\n",s,mymap[a]); } else { a=atoi(s); printf("%s %d\n",tt[a],a); } } }
相关文章推荐
- NOJ 比赛成绩查询问题II 另一种解法 双hash_map AC
- NOJ 1984 比赛现场气氛营造问题II (线性dp 完全背包)
- 关于map,hash_map小数据量查询效率的问题
- C++回顾 统计词频问题 -- vector、map、hash_map(三种方式时间比较)
- 利用hash_map解决众数问题
- c++避免使用hash_map有性能 问题
- 一个hash_map的奇怪问题
- 南邮-2040-比赛成绩查询问题II
- Linux包括hash_map和hash_set的not declared问题
- mapper.xml中map查询的问题
- 使用map和hash_map的效率问题
- sqlserver 或者 oracle 查询每科成绩前三名问题
- Linux包含hash_map和hash_set的not declared问题
- 做ArcGis Query result on map例子时,出现查询窗口在地图下一层无法查询的问题
- mybatis处理查询map列表属性为null的问题,而导致查询map无该key对象
- [multi]set/map/table/hash 及海量数据相关问题
- 【问题解决】Redis存储Hash-Map<String,Object>时无法序列化问题
- 解决map结构按时间查询问题
- 南邮 OJ 1984 比赛现场气氛营造问题II
- c++当中的hash_map加载问题