1039 Course List for Student
2024-10-21 07:29:09
题意:给出K门课程(编号1~K)以及报名该课程的学生,然后有N个学生查询,对于每一个查询,输出该学生所报的相关课程编号,且要求编号按增序输出。
思路:题目不难,解析略。(本来用map直接映射,用STL的string存储姓名是会超时的,结果今天再测了一下结果能AC了,什么鬼!?)考试时,如果只是纯映射关系,无需键值有序,可以用unordered_map,头文件在<unordered_map>下,如果会超时再尝试字符串哈希的方法。简单的字符串哈希就是下面的change()函数,需记住。
代码:
#include <cstdio> #include <cstring> #include <set> using namespace std; ***+; set<int> stu[N];//stu[i]存放学生所选择的课程编号,利用set的自动排序 //将字符串映射成数字 int change(const char *str) { ,i=; int len=strlen(str); ;i++) id=*id+(str[i]-'A'); id=id*+str[i]-'; return id; } int main() { int queryCnt,k; scanf("%d%d",&queryCnt,&k); int courseid,m; ]; ;i<=k;i++){ scanf("%d%d",&courseid,&m); while(m){ scanf("%s",name); int id=change(name); stu[id].insert(courseid); m--; } } ;i<queryCnt;i++){ scanf("%s",name); int id=change(name); printf("%s %d",name,stu[id].size()); for(auto it:stu[id]) printf(" %d",it); printf("\n"); } ; }
最新文章
- openresty 前端开发入门三之JSON篇
- MyEclipse8.6中提交SVN报错
- 关于session更新的问题
- 一个layer可以跟着画完的线移动ios程序 好玩啊。
- Communication System
- PostgreSQL 9.3 Streaming Replication 状态监控
- 学习了解 Exchanger - 实现生产者消费者模型
- 我们一起来排序——使用Java语言优雅地实现常用排序算法
- AI-响应式、分页器
- java将所有的字符串转换为大写或小写
- Django Rest framework 之 权限
- android客服端+eps8266+单片机+路由器之远程控制系统
- Qt5数据库
- bzoj1692
- IIC协议解释(转)
- python全栈 函数名 闭包及迭代器
- Java获取文件后缀名
- 20155210 EXP6 信息搜集与漏洞扫描
- sell 项目 订单详情表 设计 及 创建
- Ubuntu16.04下安装CUDA8.0和tensorflow