一、技术总结

  1. 这里由于复杂度的限制,只能够使用vector,然后进行字符串转化:考虑到string、cin、cout会超时,可以使⽤用hash(262626*10+10)将学⽣生姓名变为int型,然后存储在vector里
  2. 这里出了一个巨大的问题,就是审题不清导致最后格式结果不正确。
  3. 还有就是空格输出问题,要注意前面是否已经有输出了。
  4. 还有就是字符串转化成int存储,hash列表的应用,空间换时间
int getID(char name[]){
int id = 0;
for(int i = 0; i < strlen(name); i++){
id = 26*id + (name[i] - 'A');
}
return id;
}

二、参考代码

#include<iostream>
#include<vector>
#include<algorithm>
#include<set>
using namespace std;
const int N = 40010;
const int M = 26*26*26*10 + 1;
vector<int> selectCourse[M];
int getID(char name[]){
int id = 0;
for(int i = 0; i < 3; i++){
id = id*26 + (name[i] - 'A');
}
id = id*10 + (name[3] - '0');
return id;
}
int main(){
int n,k,id = 0;
char name[5];
cin >> n >> k;
for(int i = 0; i < k; i++){
int coursenum, number;
scanf("%d%d", &coursenum, &number);
for(int j = 0; j < number; j++){
scanf("%s", name);
id = getID(name);
selectCourse[id].push_back(coursenum);
}
}
/*
for(int i = 0; i < n; i++) {
scanf("%s", name);
id = getID(name);
sort(selectCourse[id].begin(),selectCourse[id].end());
printf("%s %lu", name, selectCourse[id].size());
for(int j = 0; j < selectCourse[id].size(); j++)
printf(" %d", selectCourse[id][j]);
printf("\n"); }
return 0;
*/
char str[n+1][5];
for(int i = 0; i < n; i++){
scanf("%s", str[i]);
}
for(int i = 0; i < n; i++){
int id = getID(str[i]);
sort(selectCourse[id].begin(), selectCourse[id].end());
printf("%s %d", str[i], selectCourse[id].size());
for(int j = 0; j < selectCourse[id].size(); j++){
//if(j != 0) printf(" ");
printf(" %d", selectCourse[id][j]); }
printf("\n");
}
return 0; }

最新文章

  1. Java面试常见知识点总结(二)
  2. .NET 读取本地文件绑定到GridViewRow
  3. 学习笔记:java线程安全
  4. 【实践】用js 实现 jq 的removeClass 方法
  5. Java 线程 — AbstractQueuedSynchronizer
  6. CentOS 7.2 搭建 Openvpn 服务器
  7. 如何在Visual Studio中选择C++和C#的编译器版本
  8. 第九章、文件与文件系统的压缩与打包 Linux 系统常见的压缩命令
  9. 在Servlet中使用spring注入的bean
  10. [09] 监听器 Listener
  11. 利用echarts highcharts 实现自定义地图 关系图效果 侧边3D柱形图饼图散点图
  12. Python Django rest framework
  13. 9.9、Libgdx之软键盘
  14. [Swift]LeetCode365. 水壶问题 | Water and Jug Problem
  15. 应用监控CAT之cat-consumer源码阅读(二)
  16. hdu 1325 &amp;&amp; poj 1308 Is It A Tree?(并查集)
  17. 忘记root密码,怎么办
  18. JS获取客户端IP地址、MAC和主机名的7个方法汇总
  19. mysql--------char 和 varchar 的区别
  20. you boot volume has only 0 byte size

热门文章

  1. Paper | Deep Mutual Learning
  2. source vimrc的时候报错:.vimrc:1: command not found: syntax
  3. H5纯前端生成Excel表格
  4. IT兄弟连 HTML5教程 HTML5技术的应用现状及HTML5平台的兴起
  5. 【VM配置】配置主机名称、网卡和yum源配置
  6. (四)初识NumPy(函数和图像的数组表示)
  7. 垃圾分类环保宣传 PPT模板
  8. 权限管理——ACL权限
  9. 用redis和cookie做单用户登录
  10. 真机调试(A valid provisioning profile for this executable was not found.)