1039. Course List for Student

手眼标定(EyeToHand)推导 Base为基坐标系(B),工具末端坐标系(T),标定板为Mark坐标系(M),相机坐标系(C)对于每两个姿态都存在上式,组成一个AX=XB的矩阵方程,X为。此时转换成AX=0的问题,单纯用SVD求奇异解便可得到。相机坐标系到Base基坐标系下的转换关系。已知标定板与机械臂末端的相对位置固定不变,,即。带入(2)式求,至此求解出需要的手眼矩阵。在眼在手外的时候,其实是要求解。 阅读详情

Course List for Student

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 for a query.

Input Specification:

Each input file contains one test case. For each case, the first line contains 2 positive integers: N (<=40000), the number of students who look for their course lists, and K (<=2500), the total number of courses. Then the student name lists are given for the courses (numbered from 1 to K) in the following format: for each course i, first the course index i and the number of registered students Ni (<= 200) are given in a line. Then in the next line, Ni student names are given. A student name consists of 3 capital English letters plus a one-digit number. Finally the last line contains the N names of students who come for a query. All the names and numbers in a line are separated by a space.

Output Specification:

For each test case, print your results in N lines. Each line corresponds to one student, in the following format: first print the student’s name, then the total number of registered courses of that student, and finally the indices of the courses in increasing order. The query results must be printed in the same order as input. All the data in a line must be separated by a space, with no extra space at the end of the line.

Sample Input:

11 5
4 7
BOB5 DON2 FRA8 JAY9 KAT3 LOR6 ZOE1
1 4
ANN0 BOB5 JAY9 LOR6
2 7
ANN0 BOB5 FRA8 JAY9 JOE4 KAT3 LOR6
3 1
BOB5
5 9
AMY7 ANN0 BOB5 DON2 FRA8 JAY9 KAT3 LOR6 ZOE1
ZOE1 ANN0 BOB5 JOE4 JAY9 FRA8 DON2 AMY7 KAT3 LOR6 NON9

Sample Output:

ZOE1 2 4 5
ANN0 3 1 2 5
BOB5 5 1 2 3 4 5
JOE4 1 2
JAY9 4 1 2 4 5
FRA8 3 2 4 5
DON2 2 4 5
AMY7 1 5
KAT3 3 2 4 5
LOR6 4 1 2 4 5
NON9 0

题意

第一行给出要查询课程的总人数以及课程总数,然后依次给出每个课程的编号、参与人数和具体的参与名单,最后一行给出要查询课程的具体名单,要求依次给出查询者的姓名、查询者参与的课程数、查询者具体参与的课程编号(升序)。

思路

为了节省时间直接将学生名字转换开散列,用vector来记录每个学生参与的课程,最后排序输出即可。


代码实现

#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;

const int maxn = 26 * 26 * 26 * 10 + 1;         // 开散列最大长度,3位26进制1位10进制
vector<int> check[maxn];                        // 散列表,记录每个人参加的课程

int hashFunc(char name[])       // 将名字转换为整数
{
	int ans = 0;
	for (int i = 0; i < 3; i++)
		ans = ans * 26 + name[i] - 'A';
	ans = ans * 10 + name[3] - '0';
	return ans;
}

int main()
{
	int n, k;
	int id, num;
	int temp;           // 记录名字散列转换后的整数
	char name[5];
	vector<int>::iterator it;
	
	scanf("%d %d", &n, &k);
	for (int i = 0; i < k; i++)
	{
		scanf("%d %d", &id, &num);
		for (int j = 0; j < num; j++)
		{
			scanf("%s", name);
			temp = hashFunc(name);
			check[temp].push_back(id);
		}
	}
	
	for (int i = 0; i < n; i++)
	{
		scanf("%s", name);
		temp = hashFunc(name);
		printf("%s %d", name, check[temp].size());         // size即为参加课程总数
		sort(check[temp].begin(), check[temp].end());      // 课程号升序排列
		if (check[temp].size())
			for (it = check[temp].begin(); it != check[temp].end(); it++)
				printf(" %d", *it);
		printf("\n");
	}
	
	return 0;
}

一开始做的时候并没有使用sort函数,而是直接开了一个set的散列来实现自动排序,但在最后一个点超时了,原因在于set会对所有学生的课程进行排序,包括了并不需要输出的学生,在数据较多时就会浪费很多时间,所以还是老老实实用sort吧。


参考

优快云博客 - iaccepted

tesseract-ocr的字库学习步骤(训练自己的文库),关于ocr的对图片的解析,包括tesseract的安装(史上最全) tesseract-ocr的字库学习步骤(训练自己的文库) 简介:在网上看了很多案列。都不是很完整。然后自己用了一天时间进行整理,第一次写文章,希望对大家有帮助。 一、安装tesseract 下载地址https://github.com/UB-Mannheim/tesseract/wiki 1.点击下面下载的这个进行运行(安装的时候有点慢) 2.点击next 3.I accept the terms of the License Agreement前的复选框打勾,点击Next。 4.Install f 阅读详情

相关推荐

EDA公司(一):Synopsys-- 主要 EDA 工具及其简介

Synopsys 是一家领先的电子设计自动化(EDA)软件公司,提供了一系列全面的产品和服务,旨在支持从概念设计到大规模生产的各个阶段。Synopsys 的 EDA 工具覆盖了芯片设计的各个方面,包括但不限于逻辑综合、静态时序分析、功能验证、物理实现、形式验证、测试插入、电源分析、信号完整性分析等。

MHD0815的博客 3311

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

SAP 财务快速记账之--科目分配模型(Account assignment model )

SAP FICO 运维解决方案

lijinbao171022的博客 1766

【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

墨刀原型设计工具操作使用指南及实践操作

该指南通过异常场景处理、像素级参数说明、复杂交互示例,覆盖了墨刀操作的全细节,适合从新手到资深用户的进阶学习。结合 PlantUML 思维导图的层级化展示,可快速定位具体功能的操作要点与问题解决方法,真正实现 “照指南即可操作” 的实用价值。

hy行者勇哥的博客 4946

VMwareWorkstation安装UOS系统(1070版本)教程

UOS系统是一款国产信创操作系统。目前市面上主流的系统版本是1070,下面我们用虚拟机来安装一下这款系统。

欲买桂花同载酒的博客 4290

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的博客 338

​热电偶测温电路图(一)​

高精度热电偶测温电路图 此设计概括了提供传感器诊断所必需的抗混叠滤波器和偏置电阻器。此示例还提供了一种新颖的方式,即使用ADS1118上的板载温度传感器完成对系统的冷端补偿。对于热电偶线性化,此设计还提供了一种非常简单的、可以在大多数微控制器上实施的线性算法。 缺点就是太贵。 特性 测量K型热电偶温度 精度1°C 高精度/可重复性0.2°C 包含冷端补偿 包含软件算法 使用ADS111816位ADC(带PGA) 原理图/方框图 热电偶测温电路图(二) OP07构成的高稳定热电

zxm8513优快云博客 2万+

1039 Course List for Student (PAT甲级)

【代码】1039 Course List for Student (PAT甲级)

linh2006的博客 234

置顶必读(1) | 滚雪球学Oracle教程导航帖,带你弯道超车(持续更新中)

什么是数据库管理系统(DBMS),Oracle在行业中的领先地位Oracle数据库的市场竞争与主要应用场景Oracle数据库的核心功能模块与未来技术发展趋势约束的高级应用:主键、唯一性、外键设计与管理表分区、视图、同义词与序列的最佳实践PL/SQL编程的设计哲学,如何高效使用Oracle SQL DeveloperPL/SQL代码调试与优化技巧RAC集群中的高可用性设计,负载均衡与并行查询的配置集群中的缓存一致性管理。

**My Coding Family** 1万+

(代码可运行)半导体器件和工艺模拟 使用Silvaco设计构建NMOS并提取各项工艺及器件参数

win10。

qq_20388971的博客 108

[PAT]1039 Course List for Student

思路:由题意得输入给的是课程关于学生的映射(即一个课程可能对应多个学生),而输出是学生关于课程的映射(一个学生对应多个课程),因此想到map容器,可以用学生姓名作为key值,选课编号作为value值,因为一个学生涉及多种选课,所以用vector类型来存储选课信息,存在value值里。1.此类问题若暴力解决则容易超时且不易实现,C++map类容器提供映射,因此可以选择,但使用前应组织好数据结构。

qq_37687292的博客 136

【CANoe示例分析】0002_SOMEIPDemo

该工程由Vector官方提供,作为仿真SOME/IP节点的示例。Demo中介绍了两种仿真SOME/IP节点的方法,一种是基于arxml数据库的仿真,另一种是没有数据库(arxml、fibex)的仿真。无论是哪种形式的仿真,如果想要通过CAPL程序接收或者发送SOME/IP信息,都需要添加交互层的信息,这些信息可以通过添加DLL文件实现,DLL文件路径在CANoe安装目录下的Exec32文件中。

jasonj333 3514

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的博客 221

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

1039 Course List for Student

题目大意: N名学生和K门课程,分别给出每门课程下选课学生的名字,查询每名学生选了多少门课程以及课程的编号,课程的编号要按照升序输出。 解题思路: 这个题难点在于如何用唯一的数字标记学生的名字。也就是设计哈希函数。如果用MAP来分配学生名字的标号的话最后一个样例过不去,不是段错误就是什么运行错误。。。由于每名学生的名字由3个大写字母和1个数字组成,可以设计一个简单的哈希函数,如果是字母的话按照2...

Apollo的博客 506

计算机控制技术及应用

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

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

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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
上一篇: 快速幂(二分幂)
下一篇: 1047. Student List for Course
绿色小光头
博客等级 码龄10年 10粉丝 301原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值