算法与数据结构
数据结构与算法的学习心得以及PTA题的一些总结
Henry_626
只有你能定义你自己
展开
-
算法分析之【时间复杂度】
时间复杂度当电脑运行下面这段代码的时候,执行任何一条语句都需要花费时间(为了方便讨论,这里我们把每一条语句的执行时间都看做是一样的,记为一个时间单元)这个程序有这么几个地方消耗了时间:① 蓝色框的两条语句,花费2个时间单元② 黑色框的一条语句,花费n+1个时间单元③ 红色框的两条语句,花费2*n个时间单元那么一共花费了3n+3个时间单元,可以看出,程序消耗的时间和n成线性关系...转载 2020-02-01 13:05:15 · 916 阅读 · 1 评论 -
【2021天梯赛训练-2】7-8 点赞狂魔 (25分)
微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。然而有这么一种人,他们会通过给自己看到的一切内容点赞来狂刷存在感,这种人就被称为“点赞狂魔”。他们点赞的标签非常分散,无法体现出明显的特性。本题就要求你写个程序,通过统计每个人点赞的不同标签的数量,找出前3名点赞狂魔。输入格式:输入在第一行给出一个正整数N(≤100),是待统计的用户数。随后N行,每行列出一位用户的点赞标签。格式为“Name K F1 ⋯FK原创 2021-01-13 12:15:22 · 638 阅读 · 1 评论 -
【2021天梯赛训练-1】7-7 抢红包 (25分)
没有人没抢过红包吧…… 这里给出N个人之间互相发红包、抢红包的记录,请你统计一下他们抢红包的收获。输入格式:输入第一行给出一个正整数N(≤104 ),即参与发红包和抢红包的总人数,则这些人从1到N编号。随后N行,第i行给出编号为i的人发红包的记录,格式如下:K N1 P1 ⋯ NK PK其中K(0 ≤ K ≤ 20)是发出去的红包个数,Ni 是抢到红包的人的编号,Pi(>0)是其抢到的红包金额(以分为单位)。注意:对于同一个人发出的红包,每人最多只能抢1次,原创 2021-01-12 23:20:02 · 2191 阅读 · 4 评论 -
【2021天梯赛训练-1】7-11 人以群分 (25分)
社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。输入格式:输入第一行给出一个正整数N(2≤N≤105 )。随后一行给出N个正整数,分别是每个人的活跃度,其间以空格分隔。题目保证这些数字以及它们的和都不会超过231 。输出格式:按下列格式输出:Outgoing #: N1Introverted #原创 2021-01-12 23:03:53 · 370 阅读 · 0 评论 -
【2021天梯赛训练-1】7-10 个位数统计 (15分)
给定一个 k 位整数 N=dk−110k−1 +⋯+d1 101 +d0 (0≤di ≤9, i=0,⋯,k−1, dk−1 >0),请编写程序统计每种不同的个位数字出现的次数。例如:给定 N=100311,则有 2 个 0,3 个 1,和 1 个 3。输入格式:每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。输出格式:对 N 中每一种不同的个位数字,以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按原创 2021-01-12 22:50:35 · 368 阅读 · 0 评论 -
【2021天梯赛训练-1】7-9 考试座位号 (15分)
每个 PAT 考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数 N(≤1000),随后 N 行,每行给出一个考生的信息:准考证号 试机座位号 考试座位号。其中准考证号由 16 位数字组成,座位从 1 到 N 编号。输入保原创 2021-01-12 22:33:01 · 203 阅读 · 0 评论 -
【2021天梯赛训练-1】7-8 互评成绩 (25分)
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。输入格式:输入第一行给出3个正整数N(3 < N ≤104 ,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学生数)。随后N行,每行给出一份作业得到的k个评审成绩(在区间[0, 100]内),其间以空格分隔。输出格式:按非递减顺序输出最后得分最高的M原创 2021-01-12 22:13:15 · 336 阅读 · 0 评论 -
中国大学MOOC-陈越、何钦铭-数据结构-2019秋期末考试
对不住啦兄弟萌,因为时间关系我先把我的练习总和发出来,总结和解析之后会更新哒~一、判断题:1-1对N个不同的数据采用冒泡排序进行从大到小的排序,当元素基本有序时交换元素次数肯定最多。 【F】1-22N 和 NN 具有相同的增长速度。 【F】1-3若一棵平衡二叉树的所有非叶结点的平衡因子都是0,则其必为完美二叉树【T】1-4在任一有向图中,所有顶点的入度之和等于所有顶...原创 2019-12-18 18:20:50 · 5121 阅读 · 2 评论 -
1-6 银行业务队列简单模拟 (25分)
设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。输入格式:输入为一行正整数,其中第1个数字N(≤1000)为顾客总数,后面跟着N位顾客的编号。编号为奇数...原创 2020-01-06 00:20:05 · 1585 阅读 · 0 评论 -
2-5 修理牧场 (35分)
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li 的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长...原创 2020-01-05 16:58:51 · 1382 阅读 · 0 评论 -
7-2 冒泡法排序 (30分)
将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N−1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。本题要求对任意给定的K(<N),输出扫描完第K遍后的中间结果数列。输入格式:输入在第1行中给出N和K(1≤K<...原创 2019-12-13 11:24:06 · 4876 阅读 · 0 评论 -
7-1 二分查找(20分)
题目描述:利用二分查找找出所给出的数在数组中的下标输入格式:第一行输入n和m表示数组有n个数据,m表示要对m个数进行查找输出格式:所有输出在一行完成,行末没有多余空格和多余回车。输入样例:5 51 2 3 4 51 2 3 4 5输出样例:0 1 2 3 4解题思路:# 欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页...原创 2019-12-12 19:07:41 · 9927 阅读 · 0 评论