PAT-2021年春季考试-顶级题解

本文提供了2023年大厂算法考试的真题解析,包括A题"共享单车回收"使用Floyd算法模拟求解,B题"剪草"结合LIS寻找最佳方案,C题"排序+并查集"求解好区间。详细介绍了每道题的题意、思路及解法。
摘要由CSDN通过智能技术生成

2023大厂真题提交网址(含题解):

www.CodeFun2000.com(http://101.43.147.120/)

最近我们一直在将收集到的机试真题制作数据并搬运到自己的OJ上,供大家免费练习,体会真题难度。现在OJ已录入50+道2023年最新大厂真题,同时在不断的更新。同时,可以关注"塔子哥学算法"公众号获得每道题的题解。
在这里插入图片描述

前言:

非常热乎的题解,嘿嘿。以往难度不知道(没刷过他们的题库),感觉这次顶级难度真不高啊,,可能是题目难读的原因嘛?之前听cy姥姥吹的那么nb。没想到还是比较简单,唯一难读的就是题意,比较绕。

A.共享单车回收:Floyd,模拟
题目大意:

给你一张含 ( n + 1 ) (n+1) (n+1)个点(编号 0 , 1 , 2 , . . . , n 0,1,2,...,n 0,1,2,...,n) m m m条边的带边权无向图。从0点出发。每次选择尚未访问过的节点中最短路径最短的点,去往那里。以此往复。直到无点可走。

第一行输出访问节点的路径.

第二行,若这张图连通。输出总花费。反之输出未访问到的点.

n ≤ 200 n \leq 200 n200

题目思路:

直接按照题意模拟就完了。

F l o y d Floyd Floyd预处理出两点之间的最短路。然后 d f s dfs dfs模拟这个过程即可。最后判一下是否连通。很容易的题目. O ( n 3 ) O(n^3) O(n3).

B.剪草:LIS+求具体方案
题目大意:

给你 n n n个数。让你将一些数变大或者变小使得数列变成非升或者非降的。问最小更改的个数。

如果改成非升的和改成非降的都是最小更改(也就是有多解),则尽量让【变大的数】的个数最少(这个部分保证数据中答案一定唯一).

第一行输出 x x x代表删除的个数
第二行输出 x x x个数,从小到大,代表删除的下标

n ≤ 2000 n \leq 2000 n2000
1 ≤ a i ≤ 1 e 3 1 \leq a_i \leq 1e3 1ai1e3

题目思路:

1.我们只计算【变成非降】的结果,对于【变成非升】的结果,我们直接对原序列 r e v e r s e reverse reverse一下再跑非降就好了。

2.显然最小更改 = n − 最长非降子序列 n-最长非降子序列 n最长非降子序列.所以我们 O ( n 2 ) O(n^2) O(n2)求一个最长非降子序列。再逆序确定dp的具体方案。

2.1:假设方案的下标序列为: b 1 , b 2 , . . . , b k , ( k 为最长非降子序列的长度 ) b_1,b_2,...,b_k,(k为最长非降子序列的长度) <

根据提供的引用内容,CSP-J2021复赛有两道题目,分别是分糖果和小熊的果篮。 对于第一题分糖果,题目来源是CCF,难度为入门。根据给出的代码,这是一个基于循环的算法,通过遍历[l,r]区间内的数,计算数对n取模后的最大值。具体的实现细节可以参考引用中的代码。这道题目属于入门级别,比较简单。 第二题是关于小熊的果篮。给定一个长度为n的数组a,其中连续的相同元素被视为一个块,要求按照块的顺序输出每个块的头元素,并删除已输出的元素。具体的实现细节可以参考引用中的代码。这道题目需要使用双链表来处理,时间复杂度为O(n)。 综上所述,CSP-J2021复赛的题目包括分糖果和小熊的果篮,具体的解题思路和代码实现可以参考上述引用内容。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [[CSP-J 2021]比赛题解](https://blog.csdn.net/weixin_56550385/article/details/126811201)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [新鲜出炉的 CSP-J 2021 复赛题目 题解](https://blog.csdn.net/qq_23109971/article/details/121024436)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值