浙江大学数据结构MOOC-课后习题-第十讲-排序5 PAT Judge

2024-05-28 18:36

本文主要是介绍浙江大学数据结构MOOC-课后习题-第十讲-排序5 PAT Judge,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目汇总
浙江大学数据结构MOOC-课后习题-拼题A-代码分享-2024

题目描述

这段文字是关于如何生成PAT(一种编程能力测试)的排行榜的说明。下面是这段文字的中文翻译:

输入说明:
每个输入文件包含一个测试案例。对于每个案例,第一行包含三个正整数,N(不超过10^4) ,表示用户总数;K(不超过5),表示问题的总数;M(不超过10^5),表示提交的总数。假定用户ID是5位数的数字,从00001到N,问题ID是从1到K。接下来的一行包含K个正整数,其中每个数字p[i]表示第i个问题的最高分数。然后是M行,每行提供一次提交的信息,格式如下:
user_id problem_id partial_score_obtained
其中partial_score_obtained是以下两种情况之一:如果提交不能通过编译器,则为-1;或者是一个整数,在[0, p[problem_id]]范围内。一行中的所有数字由空格分隔。

输出说明:
对于每个测试案例,需要按照以下格式输出排行榜:
rank user_id total_score s[1] ... s[K]
其中rank是按照total_score计算的排名,如果total_score相同,则获得相同的rank;total_score是用户的总分数;s[i]是用户在第i个问题上获得的部分分数。如果用户从未提交过针对某个问题的解决方案,或者该解决方案没有通过编译器,则相应位置打印"-"。如果用户针对一个问题提交了多个解决方案,则只计算最高分数。排行榜必须按照排名的非递减顺序打印。如果排名相同,用户必须根据完全解决问题的数量按递减顺序排序。如果仍然有平局,则必须按照他们的ID递增顺序打印。那些从未提交过可以通过编译器的解决方案,或者从未提交过任何解决方案的用户,将不会出现在排行榜上。保证至少有一个用户会出现在排行榜上。

这篇关于浙江大学数据结构MOOC-课后习题-第十讲-排序5 PAT Judge的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1011365

相关文章

【数据结构】线性表:顺序表

文章目录 1. 线性表2. 顺序表2.1 概念及结构2.2 接口实现2.3 顺序表的问题及思考 1. 线性表 线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式

数据结构9——排序

一、冒泡排序 冒泡排序(Bubble Sort),顾名思义,就是指越小的元素会经由交换慢慢“浮”到数列的顶端。 算法原理 从左到右,依次比较相邻的元素大小,更大的元素交换到右边;从第一组相邻元素比较到最后一组相邻元素,这一步结束最后一个元素必然是参与比较的元素中最大的元素;按照大的居右原则,重新从左到后比较,前一轮中得到的最后一个元素不参4与比较,得出新一轮的最大元素;按照上述规则,每一轮结

PAT-1039 到底买不买(20)(字符串的使用)

题目描述 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如,YrR8RrY是小红想做的珠串;那么ppRYYGrrYBR2258可以

PAT-1028

题目描述 某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月6日,所以超过200岁的生日和未出生的生日都是不合理的,应该被过滤掉。 输入描述: 输入在第一行给出正整数N,取值在(0, 105];随后N行,每行给出1个人的姓名(由不超过5个

七种排序方式总结

/*2018.01.23*A:YUAN*T:其中排序算法:冒泡排序,简单排序,直接插入排序,希尔排序,堆排序,归并排序,快速排序*/#include <stdio.h>#include <math.h>#include <malloc.h>#define MAXSIZE 10000#define FALSE 0#define TRUE 1typedef struct {i

拓扑排序——C语言

拓扑排序(Topological Sorting)是一种用于有向无环图(DAG)的排序算法,其输出是图中所有顶点的线性排序,使得对于每条有向边 (u, v),顶点 u 在 v 之前出现。拓扑排序确定了项目网络图中的起始事件和终止事件,也就是顶点的执行顺序。         因为是有向无环图,所以拓扑排序的作用其实就是把先发生的排序在前面,后发生的排序到后面。 例如现在我们有一个

算法与数据结构面试宝典——回溯算法详解(C#,C++)

文章目录 1. 回溯算法的定义及应用场景2. 回溯算法的基本思想3. 递推关系式与回溯算法的建立4. 状态转移方法5. 边界条件与结束条件6. 算法的具体实现过程7. 回溯算法在C#,C++中的实际应用案例C#示例C++示例 8. 总结回溯算法的主要特点与应用价值 回溯算法是一种通过尝试各种可能的组合来找到所有解的算法。这种算法通常用于解决组合问题,如排列、组合、棋盘游

《学习OpenCV》课后习题解答7

题目:(P105) 创建一个结构,结构中包含一个整数,一个CvPoint和一个 CvRect;称结构体为“my_struct”。 a. 写两个函数:void Write_my_strct(CvFileStorage* fs, const char * name, my_struct* ms) 和 void read_my_struct(CvFileStorage* fs, CvFileNode

《学习OpenCV》课后习题解答6

题目:(P104) 使用cvCmp()创建一个掩码。加载一个真实的图像。使用cvsplit()将图像分割成红,绿,蓝三个单通道图像。 a.找到并显示绿图。 b.克隆这个绿图两次(分别命名为clone1和clone2)。 c.求出这个绿色平面的最大值和最小值。 d.将clone1的所有元素赋值为theash=(unsigned char)((最大值-最小值)/2.0)。 e.将clone

《学习OpenCV》课后习题解答5

题目:(P104) 为一个图像创建多个图像头。读取一个大小至少为100*100的图像。另创建两个图像头并设置它们的origion,depth,nChannels和widthStep属性同之前读取的图像一样。在新的图像头中,设置宽度为20,高度为30.最后,将imageData指针分别指向像素(5,10)和(50,60)像素位置。传递这两个新的图像头给cvNot()。最后显示最初读取的图像,在那个