CSDN周赛第48期

news/2025/2/15 23:00:33/

不知不觉又过去两期周赛,相应地,题解也落下了。而当我再回去想下载考试报告时。。。

现在更新的速度有这么快了么?

可惜题目还是考过的旧题,尤其对我们这种老油子来说,最大的好处是省去了阅读理解的烦恼。

平心而论,本期四道题,对初学者来说,还是有一定难度的。尤其第二题并查集,和第四题三维背包问题,虽然问哥写过题解,也记得解法,但若是真让我一字不差地背下来,还是有点吃力的。特别是背包问题中的剪枝优化,稍微有点烧脑。

第二题,天然气订单,30期,并查集问题。用其它的做法应该也能通过,但我没试过。理论上不可能会比并查集的复杂度更优了。

第三题,排查网络故障,23期,之前的题解疏忽了边界问题,现已更正。当然,还有更简单的做法,就是一直除2,且向下取整,因为这样做和向上取整+边界问题是等价的——二分的确很简单,但有时候理解起来还是挺麻烦的。

第四题,运输石油,32期,比较麻烦。三维背包的复杂度是 O(n^3),好在本题可以通过剪枝来优化。如果不考虑时间复杂度,还可以通过排序来做,也就是深度优先搜索(DFS

第一题,最后一位,放在最后来说,曾在27期考过,但那期我没参加,所以也没写过题解。

小明选择了一个正整数X,然后把它写在黑板上。然后每一天他会擦掉当前数字的最后一位,直到他擦掉所有数位。 在整个过程中,小明会把所有在黑板上出现过的数字记录下来,然后求出他们的总和sum. 例如X = 509, 在黑板上出现过的数字依次是509, 50, 5, 他们的和就是564. 小明现在给出一个sum,小明想让你求出一个正整数X经过上述过程的结果是sum.

输入描述:

输入包括正整数sum(1 ≤ sum ≤ 10^18)

输出描述:

输出一个正整数,即满足条件的X,如果没有这样的X,输出-1。

输入样例:

564

输出样例:

509

本题不难,由题目描述可以很容易发现,原数字不可能大于 sum,所以给出的正整数 sum 就决定了答案的上限。然后从上限开始向下穷举,一个个去试这个题目中计算条件,当找到满足条件的整数时,退出穷举,输出答案即可。如果当计算的结果小于 sum,说明没有符合条件的整数,输出 -1。

def fun(n):res = 0while n > 0:res += nn //= 10return res

当然,由上述过程也可以看出答案具有单调性,所以我们也可以找到答案的下限,然后通过二分来做。

答案的下限也很简单。我们假设这个整数有 m 位,除了最高位,其余位数为0,以示例为例,可得,x00 * 111 = 56400,于是可得答案的下限是 56400//111 = 508,再通过上下限进行二分查找即可。

实际上,多试验几次,就会发现,答案只比这个下限大 1 或 2 的位置,所以从下限开始穷举,比二分还要快。——感觉这应该是个数学现象,直觉上应该有 O(1) 的公式解法,但问哥数学不好,就不继续推了,感兴趣的童鞋可以留言,谢谢。


http://www.ppmy.cn/news/56549.html

相关文章

Unity利用UGUI RawImage组件制作转场动画

Unity利用UGUI RawImage组件制作转场动画 最近接到了一个unity全景图的小项目,由于在不同的场景之间转场时直接转会太过生硬,因此要求有个Alpha转场的动画。于是想到两种可行的方案: 一、UGUI方案 用UGUI显示当前屏幕纹理,然后…

【计算机图形学基础教程】MFC基本绘图函数1

MFC基本绘图函数 在Windows平台上,应用程序的图形设备接口(Graphics Device Interface, GDI)被抽象为设备上下文CDC类(Device Context, DC)。因此,直接接受图形数据信息的不是显示器和打印机等硬件设备&am…

【Linux】进程信号 --- 信号产生 信号递达和阻塞 信号捕捉

🍎作者:阿润菜菜 📖专栏:Linux系统编程 文章目录 一、预备知识二、信号产生1. 通过终端按键产生信号1.1 signal()1.2 core dump标志位、核心存储文件 2.通过系统调用向进程发送信号3.由软件条件产生信号3.1 alarm函数和SIGALRM信号…

Arthas--ognl表达式

背景 arthas执行ognl表达式,获取对应的jvm对象数据。ognl学习,可以查看上篇:https://xiaopanjia.blog.csdn.net/article/details/130425414 基本语法 ognl express -c {hashCode} --classLoaderClass {当前的全路径 ClassLoader 信息} -x …

Shell+VCS学习1

Shell脚本常见问题 mkdir rmdir rm mkdir 创建文件夹 mkdir -p filename-p 确保目录名称存在,不存在的就建一个。 mkdir -p runoob2/test若 runoob2 目录原本不存在,则建立一个。(注:本例若不加 -p 参数,且原本 ru…

【JAVA程序设计】(C00132)基于SSM的固定资产管理系统

基于SSM的固定资产管理系统 项目简介项目获取开发环境项目技术运行截图 项目简介 本系统为基于SSM的固定资产管理系统,本系统分为二种用户:超级管理员和普通管理员; 超级管理员功能: 首页查看、设备管理、平台账户管理、设备台账…

最接近的三数之和

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 示例 1: 输入:nums [-1,2,1,-4], target 1 输出:2 …

探究XServer中的字体系统:如何设置字体和字体缩放

Xorg server中的字体系统 随着计算机技术的不断发展,人们对于计算机的要求也越来越高。除了性能、功能和用户体验之外,用户对于计算机界面的要求也越来越高。而作为计算机界面的重要组成部分,字体系统在计算机界面中的地位也越来越重要。 字体…