1047. Student List for Course (25)

原创 2015年11月20日 13:45:19

1.和前面的1039 Course List for Student (25) 相类似

2.刚开始使用vector<set<int>> 格式存储course,后面在输入数据的时候就已经超时

3.随后改为vector<vector<int>> 存储,在后面进行sort,没有超时


AC代码如下:

//#include<string>
//#include <iomanip>
#include<vector>
#include <algorithm>
//#include<stack>
#include<set>
#include<queue>
#include<map>
//#include<unordered_set>
#include<unordered_map>
//#include <sstream>
//#include "func.h"
//#include <list>
#include<stdio.h>
#include<iostream>
#include<string>
#include<memory.h>
#include<limits.h>
using namespace std;

int main(void)
{
	int studentSum, courseSum;
	scanf("%d %d", &studentSum, &courseSum);
	char name[5];
	vector<vector<int>> course(courseSum);
	int *courseIdx = new int[20];
	int nameInt;
	int chooseSum;
	for (int i = 0; i<studentSum; i++)
	{
		scanf("%s", name);
		nameInt = (name[0] - 'A') * 26 * 26 * 10 + (name[1] - 'A') * 26 * 10 + (name[2] - 'A') * 10 + (name[3] - '0');
		scanf("%d", &chooseSum);
		for (int j = 0; j<chooseSum; j++)
		{
			scanf("%d", &courseIdx[j]);
			course[courseIdx[j] - 1].push_back(nameInt);
		}
	}
	for (int i = 0; i<course.size(); i++)
	{
		printf("%d %d\n", i + 1, course[i].size());
		sort(course[i].begin(), course[i].end());
		for (vector<int>::iterator ite = course[i].begin(); ite != course[i].end(); ite++)
		{
			name[4] = 0;
			name[3] = (*ite) % 10 + '0';
			name[2] = ((*ite) / 10) % 26 + 'A';
			name[1] = ((*ite) / 10 / 26) % 26 + 'A';
			name[0] = ((*ite) / 10 / 26 / 26) + 'A';
			printf("%s\n", name);
		}
	}

	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

10分钟探索神经网络背后的生物学启发 | Neural Networks #6

神经网络在线课由Google Brain团队的研究员Hugo Larochelle授权雷锋字幕组中文翻译,是以神经网络基础知识为主的短视频在线课。每次10分钟,了解神经网络基础概念,轻松上手深度学习算...
  • Y0W1as5eg37urFdS
  • Y0W1as5eg37urFdS
  • 2017年12月25日 00:00
  • 126

PAT 1039. Course List for Student (25) 哈希表,空间换时间,字符串处理时间

/************************* 题意: 给出每种课的上课学生名单 问学生们分别上了哪些课。 /************************ 求解思路和注意点: 这题可用哈希也...
  • a799581229
  • a799581229
  • 2018年01月14日 23:58
  • 14

(2016秋数据结构课后练习题总结)03-树2 List Leaves (25分)

Given a tree, you are supposed to list all the leaves in the order of top down, and left to right. ...
  • jiaomenglei
  • jiaomenglei
  • 2016年09月16日 21:26
  • 1110

c#中list使用示例

protected void Page_Load(object sender, EventArgs e) { List studentNames = new List(); ...
  • smartsmile2012
  • smartsmile2012
  • 2014年01月02日 10:59
  • 5828

浙江大学PAT_乙级_1047. 编程团体赛(20)

编程团体赛的规则为:每个参赛队由若干队员组成;所有队员独立比赛;参赛队的成绩为所有队员的成绩和;成绩最高的队获胜。 现给定所有队员的比赛成绩,请你编写程序找出冠军队。 输入格式: 输...
  • pythontojava
  • pythontojava
  • 2015年12月06日 14:33
  • 1169

小虫出世----第一个爬虫程序(扒下慕课网站的图片)

1.urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件。他以urlopen函数的形式提供了一个非常简单的接口,这是具有利用不同协议获取URLs的...
  • GoodLuckAC
  • GoodLuckAC
  • 2016年12月09日 15:11
  • 1442

sql面试题 学生表, 课程表,成绩表,教师表

Student(Sid,Sname,Sage,Ssex) 学生表 Course(Cid,Cname,Tid) 课程表 SC(Sid,Cid,score) 成绩表 Teacher(Tid,Tnam...
  • u010689306
  • u010689306
  • 2016年05月24日 23:06
  • 5679

基于Spring Boot实现Mybatis的多数据源切换和动态数据源加载

Spring Boot Mybaits mybatis基本配置、多数据源切换、动态加载数据源
  • YHYR_YCY
  • YHYR_YCY
  • 2017年12月25日 17:25
  • 148

数据库 - 索引、基本表创建与删除

修改基本表ALTER TABLE [ ADD [ 完整性约束 ] ] [ DROP ] [ ALTER COLUMN ]; [例8]向Student表增加“入学时间”列,其数据类型为日期型。...
  • wangzi11322
  • wangzi11322
  • 2015年05月05日 10:04
  • 2479

JAVA学习代码——集合版选课

封装学生类:Student.java package 集合_学生选课; import java.util.HashSet; import java.util.Set; /** * 学生类 ...
  • Reserved_person
  • Reserved_person
  • 2016年08月12日 21:24
  • 493
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1047. Student List for Course (25)
举报原因:
原因补充:

(最多只允许输入30个字)