A1039 Course List for Student (25 分)
2024-09-06 05:47:37
一、技术总结
- 这里由于复杂度的限制,只能够使用vector,然后进行字符串转化:考虑到string、cin、cout会超时,可以使⽤用hash(262626*10+10)将学⽣生姓名变为int型,然后存储在vector里
- 这里出了一个巨大的问题,就是审题不清导致最后格式结果不正确。
- 还有就是空格输出问题,要注意前面是否已经有输出了。
- 还有就是字符串转化成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;
}
最新文章
- Java面试常见知识点总结(二)
- .NET 读取本地文件绑定到GridViewRow
- 学习笔记:java线程安全
- 【实践】用js 实现 jq 的removeClass 方法
- Java 线程 — AbstractQueuedSynchronizer
- CentOS 7.2 搭建 Openvpn 服务器
- 如何在Visual Studio中选择C++和C#的编译器版本
- 第九章、文件与文件系统的压缩与打包 Linux 系统常见的压缩命令
- 在Servlet中使用spring注入的bean
- [09] 监听器 Listener
- 利用echarts highcharts 实现自定义地图 关系图效果 侧边3D柱形图饼图散点图
- Python Django rest framework
- 9.9、Libgdx之软键盘
- [Swift]LeetCode365. 水壶问题 | Water and Jug Problem
- 应用监控CAT之cat-consumer源码阅读(二)
- hdu 1325 &;&; poj 1308 Is It A Tree?(并查集)
- 忘记root密码,怎么办
- JS获取客户端IP地址、MAC和主机名的7个方法汇总
- mysql--------char 和 varchar 的区别
- you boot volume has only 0 byte size
热门文章
- Paper | Deep Mutual Learning
- source vimrc的时候报错:.vimrc:1: command not found: syntax
- H5纯前端生成Excel表格
- IT兄弟连 HTML5教程 HTML5技术的应用现状及HTML5平台的兴起
- 【VM配置】配置主机名称、网卡和yum源配置
- (四)初识NumPy(函数和图像的数组表示)
- 垃圾分类环保宣传 PPT模板
- 权限管理——ACL权限
- 用redis和cookie做单用户登录
- 真机调试(A valid provisioning profile for this executable was not found.)