CSDN周赛第48期

这篇具有很好参考价值的文章主要介绍了CSDN周赛第48期。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

CSDN周赛第48期

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

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

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

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

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

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

第一题,最后一位,放在最后来说,曾在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 = 0
    while n > 0:
        res += n
        n //= 10
    return res

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

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

实际上,多试验几次,就会发现,答案只比这个下限大 1 或 2 的位置,所以从下限开始穷举,比二分还要快。——感觉这应该是个数学现象,直觉上应该有  的公式解法,但问哥数学不好,就不继续推了,感兴趣的童鞋可以留言,谢谢。文章来源地址https://www.toymoban.com/news/detail-428874.html

到了这里,关于CSDN周赛第48期的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【周赛第69期】满分题解 软件工程选择题 枚举 dfs

    昨晚没睡好,脑子不清醒,痛失第1名 关于工程效能,以下哪个选项可以帮助提高团队的开发效率? A、频繁地进行代码审查 B、使用自动化测试工具 C、使用版本控制系统 D、所有选项都正确 选D。 以下哪个选项不属于编码规范的内容? A、变量命名规则 B、注释规范 C、代码缩

    2024年02月14日
    浏览(42)
  • CSDN周赛61期

    答案:错误 详情搜索NAT协议:网络地址转换。 NAT(Network Address Translation),是指网络地址转换,1994年提出的。 当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法

    2024年02月12日
    浏览(34)
  • 春眠不觉晓,Java数据类型知多少?基础牢不牢看完本文就有数了

    文编|JavaBuild 哈喽,大家好呀!我是JavaBuild,以后可以喊我鸟哥!俺滴座右铭是不在沉默中爆发,就在沉默中灭亡,一起加油学习,珍惜现在来之不易的学习时光吧,等工作之后,你就会发现,想学习真的需要挤时间,厚积薄发啦! 我们知道Java是面向对象的静态型编程语言,

    2024年02月02日
    浏览(41)
  • 2023河南萌新联赛第(四)场:河南大学

    目录 B:序列的与和 D:幂运算 E:平均数 J:异次元抓捕 K:奖励关 M:找孙子 WY是一个序列大师,他喜欢研究一些和序列相关的操作。时间长了,WY对某一些特定的序列产生了感情,换句话说,WY喜欢和这些特定的序列打交道。比如说WY最近就迷上了这样一类序列: 我们规定序

    2024年02月11日
    浏览(36)
  • android不可不知调试技巧

    目录 1、条件断点 2、评估表达式(Evaluate Expression) 3、日志断点 4、方法断点 5、异常断点 6、Field WatchPoint 假设我们列表循环的某个元素时候才暂停,就用这种方式。具体方式在循环列表打断点,对着断点右键一下,然后会弹出有一行填写condition的,这里就填写条件即可,如

    2023年04月26日
    浏览(41)
  • 区块链国赛第一套样题(关于运维)

    基于给定服务器环境以及软件(地址\\\"/root/tools\\\"),搭建一条4节点的区块链系统并验证,具体工作内容如下: 1. 采用默认配置搭建区块链网络; 2. 通过命令验证区块链节点进程运行状况; 3. 通过命令验证区块链连接状态和共识状态日志输出。 前置准备工作:下载依赖(op

    2024年03月23日
    浏览(47)
  • 区块链国赛第二套样题(关于运维)

    基于给定服务器环境以及软件(地址“/root/tools”),使用Docker以默认配置安装单机4节点的区块链系统,并完成控制台工具的部署: 完成系统搭建配置与启动。 使用基于Docker命令查看区块链系统状态。 检查区块链系统节点node0连接状态输出。 配置控制台,管理相关证书并启

    2024年04月09日
    浏览(41)
  • 区块链国赛第四套样题(关于运维)

    通过给定区块链项目需求,进行区块链系统部署,包括系统部署、控制台部署等。通过监控工具完成对网络、节点服务的监控。最终利用业务需求规范,完成系统日志、网络参数、节点服务等系统结构的维护。 部署区块链服务器,配置管理平台参数及访问端口; 部署项目节

    2024年04月22日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包