1039 Course List for Student

VirtualBox创建虚拟机(为安装Ubuntu桌面系统) Ubuntu的安装非常灵活。但是万变不离其宗,归纳起来,无非就是以下3种:(1)用户可以下载完整的ISO镜像文件,将其转移到各种介质上面,例如DVD或者U盘,然后以该介质引导系统进行安装。(2)用户可以下载一个非常小的网络安装器,利用该安装器引导系统进行在线安装。(3)用户可以将Ubuntu安装到一个U盘中,随身携带。为了便于读者学习,本节将介绍通过完整的ISO镜像文件安装Ubuntu。其他的安装方式将在后面介绍。 阅读详情

在这里插入图片描述在这里插入图片描述

题目大意:

N名学生和K门课程,分别给出每门课程下选课学生的名字,查询每名学生选了多少门课程以及课程的编号,课程的编号要按照升序输出。

解题思路:

这个题难点在于如何用唯一的数字标记学生的名字。也就是设计哈希函数。如果用MAP来分配学生名字的标号的话最后一个样例过不去,不是段错误就是什么运行错误。。。由于每名学生的名字由3个大写字母和1个数字组成,可以设计一个简单的哈希函数,如果是字母的话按照26转10进制的方式转为10进制,数字就按照10进制转就可以了(不要忘了前面字母转换得到的结果),那么最大的转换结果就是((262626+26*26)*10+9)。之后的过程模拟就好。
代码如下:

#include<iostream>
#include<cstdio>
#include<fstream>
#include<set>
#include<cmath>
#include<cstring>
#include<string>
#include<map>
#include<vector>
#include<iomanip>
#include<cstdlib>
#include<list>
#include<queue>
#include<stack>
#include<algorithm>
#define inf 0x3f3f3f3f
#define MOD 1000000007
#define mem0(a) memset(a,0,sizeof(a))
#define mem1(a) memset(a,-1,sizeof(a))
#define meminf(a) memset(a,inf,sizeof(a))
//vector ::iterator it;
//set<int>::iterator iter;
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
vector<int> v[200010];//(根据(26*26*26+26*26)*10+9)
int hashfun(char t[])//哈希函数
{
  int index=0;
  for(int i=0;i<3;i++) index=index*26+(t[i]-'A');
  index=index*10+(t[3]-'0');
  return index;//返回下标
}
int main()
{
//  std::ios::sync_with_stdio(false);
//  cin.tie(0);
//  freopen("test.txt","r",stdin);
//  freopen("output.txt","w",stdout);
 int n,k;
 scanf("%d %d",&n,&k);
 while(k--)
 {
   int index,num;
   char s[5]={0};
   scanf("%d %d",&index,&num);
   while(num--)
   {
     scanf("%s",s);
     int m=hashfun(s);
     v[m].push_back(index);//放入每名学生选的课程
   }
 }
 while(n--)
 {
   char name[5]={0};
   scanf("%s",name);
   int m=hashfun(name);
   //sort(v[m].begin(),v[m].end());
   printf("%s %d",name,v[m].size());
   if(v[m].size())
   {
     sort(v[m].begin(),v[m].end());//升序
     printf(" %d",v[m][0]);
     for(int i=1;i<v[m].size();i++)printf(" %d",v[m][i]);
   }
   printf("\n");
 }
 return 0;
}

maya导入导出bvh 自动 脚本 maya打开bvh脚本 阅读详情

相关推荐

IGV新手必看:5分钟搞定ChIP-seq/DAP-seq/ATAC-seq数据可视化(附常见报错解决方案)

本文为IGV新手提供了一份快速上手的实战指南,详细讲解了如何高效完成ChIP-seq、DAP-seq、ATAC-seq等数据的可视化。内容涵盖软件安装、基因组导入、文件格式转换与优化,并重点剖析了“导入后一片空白”等常见报错的根本原因与解决方案,帮助用户在5分钟内避开雷区,生成可用于发表的IGV专业图谱。

weixin_29198045的博客 539

PAT-ADVANCED1039——Course List for Student

我的PAT-ADVANCED代码仓:https://github.com/617076674/PAT-ADVANCED 原题链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805447855292416 题目描述: 题目翻译: 1039 学生课程表 浙江大学有4万名学生,开设2500门课程。 现在给出所...

清风阁 342

BQ4050开发进阶(二):Protections参数优化策略与实战解析

本文深入解析了BQ4050电池管理芯片中Protections参数的优化策略与实战方法。针对电压、电流、温度等核心保护功能,详细阐述了如何根据具体电芯特性、负载场景和环境因素,精细调整CUV、COV、OCC/OCD等阈值与延时,以在确保电池绝对安全的前提下,实现极致的用户体验与系统可靠性。

rgv234567的博客 482

【1039】Course List for Student(vector)

1.题目 https://pintia.cn/problem-sets/994805342720868352/problems/994805447855292416 给出N个学生,K门课。 给出每门课号,报名人数N, 给出N个学生的名字,最终要输出每个学生的名字及其选课数,和选得所有课程编号。 2.思路 读取数据将课程编号加入所有选择该课的学生中,最后依次输出每个学生的选课情况。 (1)学生通过姓名的方式给出; ——如果用STL的map实现姓名与学生编号的映射,最后一组数据过大,导致用map和string会

发现问题,并解决问题,批判性思维 1025

基于NE555的触摸延时开关电路设计与实现

本文详细介绍了基于NE555芯片的触摸延时开关电路设计与实现方法。通过分析NE555的单稳态工作模式,结合定时电阻、电解电容等关键元件选型,提供了一套完整的电路搭建方案。文章还包含抗干扰设计、调试技巧及常见故障处理,帮助电子爱好者快速掌握触摸延时灯的制作要点。

weixin_29268267的博客 789

简单搭建 可视化日志+链路追踪

JAVA 可视化日志、链路追踪、plumeLog、Tlog、Logback

qq_39535439的博客 1204

Course List for Student (25)

文章目录前言一、题目分析二、 需求分析1.输入分析2.输出分析3.功能分析4.测试数据三、概要设计 前言 《算法笔记》vector的使用 一、题目分析 具体题目见:http://codeup.hustoj.com/problem.php?cid=100000596&pid=0 大致题意:给定所有课程的学生名单和需要查询的学生名单,输出查询学生的课程表。 二、 需求分析 1.输入分析 每个输入文件一个测例。 第一行输入两个整数,查询课表的学生人数N(<=4000)和课程总数K(<=25

weixin_45090728的博客 339

RV1126开发板性能实测:网络、温度与功耗全解析

本文对RV1126开发板进行了全面的性能实测,重点分析了网络性能、温度表现与功耗特性。测试发现UDP带宽可达500Mbps,但TCP性能受限于协议栈;散热设计对持续性能至关重要,大板子在AI推理和视频推流中表现更稳定。为嵌入式开发者提供了真实的选型参考和优化建议。

d3e4f的博客 270

1039. Course List for Student

题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1039 考察查找 超时 // 超时的可能原因: // 1. 使用了string // 2. 暴力查找太低效 // // 当想着优化查找的时候,大神哈希一步到位 #include #include #include #include #include #include #

Sunshine 835

保姆级教程:在Ubuntu 22.04上用VLLM+OpenWebUI部署DeepSeek-R1-14B(含Q8量化模型下载)

本文提供在Ubuntu 22.04上使用VLLM和OpenWebUI部署DeepSeek-R1-14B大语言模型的完整教程,包括环境配置、模型下载、VLLM参数调优及OpenWebUI集成。特别针对Q8量化模型优化部署流程,解决CUDA版本冲突等常见问题,适合开发者快速搭建本地AI对话系统。

weixin_26712075的博客 430

华为OD面试八股真题 - 操作系统 - 1

华为OD技术面,操作系统相关八股真题提供详细解答,这篇博客主要涉及于进程和线程相关知识点

qq_45776114的博客 1644

1039.Course List for Student

【题意】         给出每个课程的选修学生以及要查询自己课程的学生名字,返回每个学生相应选修了的课程号 【思路】         用vector存下每个学生选的课程,排个序即可 【注意点】         这道题卡时间,一开始我用的是map>存每个学生的课程号,但最后一个case会超时。后来看了网上别人的解题报告才发现题目中一个重要信息:学生的名字前三位是大写英文字

不应该放弃,直到失去的那一刻 528

【Bug已解决】codex file edit fails / Write operation denied — CodeX CLI 文件编辑失败解决方案

CodeX CLI 编辑文件时报写入被拒绝,本质是沙箱限制或权限不足。文中给出配置允许目录、修复权限、Git stash 管理冲突等完整方案。

一键难忘的博客 4301

1039 Course List for Student (25 分) &&1047 Student List for Course (25 分)

题意:有NNN个学生查询总共KKK种课程的选课情况,接下来的数字代表课程id,选课学生数量,下一行是选课该课程学生的姓名,由3位大写字母和1位数字组成,最后一列是NNN个学生姓名。 题目链接 思路:用map<string,string>存储学生姓名以及选课情况,每遇到一个id,连接(拼接)该id。最后用map输出选课结果 #include<iostream> #include<cstdio> #include<map> #include<algori.

Mirrors的博客 222

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

1039 Course List for Student

1039 Course List for Student (25 分) Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the registered co...

lannister_awalys_pay的博客 188

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

1039 Course List for Student java

Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the registered course list for each student who comes ...

有梦的博客 388

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

上一篇: 1024 Palindromic Number
下一篇: 1047 Student List for Course
Apollo-yyy
博客等级 码龄9年 11粉丝 180原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值