8-04. 打印学生选课清单
来源:互联网 发布:石油库存公布数据 编辑:程序博客网 时间:2024/06/07 08:40
#include<algorithm>#include<vector>#include<cstdio>#include<unordered_map>using namespace std;char name[5];int f(char*p){return (p[0]-'A')*6760+(p[1]-'A')*260+(p[2]-'A')*10+p[3]-'0';}unordered_multimap<int,int>ke;int main(){ int n,k;scanf("%d%d",&n,&k); for(int i=1;i<=k;++i){ int cnt,nth;scanf("%d%d",&nth,&cnt); while(cnt--){ scanf("%s",name); ke.insert({f(name),nth});} }//for while(n--){ scanf("%s",name);int k=f(name); vector<int>no(ke.count(k)); printf("%s %ld",name,no.size()); auto it=ke.equal_range(k).first; for(auto &x:no)x=it++->second; sort(no.begin(),no.end()); for(auto &x:no)printf(" %d",x); putchar('\n'); } return 0;}用哈希表,但肯定不需要自己写一个哈希表,自己再怎么写也不可能比STL的写的更好,如果超时或超内存,肯定是有些地方的优化做的不好。比如名字明显可以转化为一个数字,那么用string倒腾就会超时而且没必要。另外课程标号并不是按顺序来的,否则给这个标号就没用了,pat的出题人很聪明不会给一个没用的数字的
0 0
- 8-04. 打印学生选课清单
- 打印学生选课清单
- PTA 打印学生选课清单
- PAT DS 8-04 打印学生选课清单
- 5-49 打印学生选课清单 (25分)
- 数据结构课设 打印学生选课清单 (Hash)
- 5-49 打印学生选课清单 (25分)
- PTA 5-18 打印学生选课清单 (25分)【】
- pta 习题集5-18 打印学生选课清单
- 5-2 打印学生选课清单 (25分)
- 5-6 打印学生选课清单 (25分)
- 模拟学生选课系统
- 学生选课数据管理系统
- 学生选课系统
- 学生选课系统
- 学生选课数据库设计
- 学生选课系统设计
- MFC学生选课系统
- 错误日志——PreviousPage is null when attempting a cross-page postback using a button and the PostBack
- 设计模式之factory method与c++反射
- MySQL Dumping and Reloading the InnoDB Buffer Pool(MySQLdump和重载InnoDB缓冲池)
- 基于OpenStack的IBM Cloud Manager新玩法
- Eclipse去除js(JavaScript)验证错误
- 8-04. 打印学生选课清单
- 手把手教你用matlab生成STM32官方IIR滤波器的系数
- uC/OS-II、eCos、Linux的简要比较
- 模仿万年历,制作的考勤功能
- 欢迎使用CSDN-markdown编辑器
- Android内存泄露之开篇
- 网络丢包率如何解决
- Android Studio ndk第一次使用
- mosquitto1.4 编译安装遇到的问题